
Qt5
文章平均质量分 60
Stone_OverLooking
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
QCustomplot源码编译cpp文件,错误file too big
mbig-obj编译信息,但是没说具体怎么去处理,对于cmake不太熟悉的人来说,简直就是一场信息灾难。具体的解决办法就是在 add_executable之后添加一个判断把大信息编译条件添加进去即可具体如下。使用cmake编译QCustomplot时,报错显示file too big,网上的信息都是添加。原创 2025-03-02 15:54:03 · 412 阅读 · 0 评论 -
QLisview 实现model deletage,并且在不需要编辑的情况下自定义UI
如果要使用自己的自定义QWidget,比如利用ui文件和子当以类创建一个自定义的Item,如何再QListView中实现。在QListView中自定义model、deletage,普遍是使用paint函数绘制;以上就实现了下方的功能,左侧自定义listView,绑定右侧数据。以下用一个QListView的例子实现上述情景。为新项启用持久编辑器 重中之重。自定义ListView Item。原创 2025-04-21 17:07:02 · 260 阅读 · 0 评论 -
qml c++混合编程注意事项
在Qml和C++类进行数据交互时,通用的办法都是注册C++到Qml中,但是很多时候C++的对象是在C++中进行创建,如果在Qml中创建了,数据之间的交互就会出现无法控制的问题。信号与槽、上下文等都是数据交互的方式,但是当嵌套多层时,内部的C++对象和内部的Qml内容交互无法直接连接。此时就需要通过一个代理的C++类作为数据和消息的连接通道。利用一个中间的代理类实现嵌套的消息和数据的交互,注册为engine的上下文。嵌套的交互,通知类、触发类的动作可以通过嵌套的信号与槽和C++绑定。原创 2025-03-12 21:59:08 · 197 阅读 · 0 评论 -
Qt+vs2022的中文乱码问题。
最近在项目中使用Qt中文时出现了乱码问题,但是以前的方法用着却没有作用了,关于vs + Qt中常量中文字符串、变量字符串中文乱码问题的解决方式。const char* info = “中文显示”;1.在项目中所有的头文件中添加。遂记录一下这次的解决方法。保证编码采用utf-8。原创 2024-07-30 17:20:33 · 526 阅读 · 0 评论 -
使用QGraphicsView三件套绘制图片,绘制鼠标事件
Qt通过鼠标绘制线条、矩形、多边形本质都是根据鼠标的坐标位移,使用QPainter的自带的函数进行绘制。原创 2024-07-29 14:46:07 · 443 阅读 · 0 评论 -
QML笔记八
在QQmlContext中设置一上下文(按照这样new QQmlContext(engine.rootContext())),上下文对象的是所有属性都可以在context中通过名称访问。context->setContextProperty(“stringModel”,&modelData) //////和下面代码的区别。//////和上面代码的区别。window销毁后,新创建的context必须显示销毁,可以将window作为context父对象,利用QT的对象内存结构自动销毁。原创 2024-05-15 23:05:36 · 1135 阅读 · 0 评论 -
QML基础语法七
ListModel包含三个数据项,有三个ListElement表示,每个ListElement有三个角色name、cost、attributes。QUick的数据模型主要包含在QtQml.Model中,还有个基于XML的QtQml.XmlListModel。使用Repeater可以将模型中的数据在定位器positioners中进行布局和显示。使用XML类型的导入 import QtQml.XmlListModel。使用表格类型的需要import Qt.labs.qmlmodels。例子:存储水果信息,原创 2024-05-09 20:41:20 · 282 阅读 · 0 评论 -
C++下使用Matplotlib-cpp的一些配置
这里为了打包方便,将python3.dll、python39.dll、vcruntime140.dll /path/Anaconda3/Library/plugins/platforms复制到exe所在的目录中。或者使用虚拟环境中的envs中的python环境对应的include 和 Lib/site-packages/numpy/core/include。C/C+±–》常规–》附加包含目录—》(这里使用了Anaconda3默认的安装的python3.9,没有使用虚拟环境)//设置python环境。原创 2024-05-09 15:09:47 · 1081 阅读 · 0 评论 -
QML基础语法六
主要就是red、lime、blue、black、white、yellow、cyan、magenta、green、pink、gray、gold等。color,一个ARGB格式颜色值,主要通过SVG颜色名称、十六进制、Qt.rgba()表示。Image用来显示图片,路径由source指定,格式为Qt支持的任何格式,PNG、JPEG、SVG等。rotation属性指定顺时针旋转的度数,默认为0,正数为顺时针旋转、负数为逆时针旋转。Item拥有一个scale、rotation属性,可以实现缩放、旋转。原创 2024-05-05 22:37:30 · 1102 阅读 · 0 评论 -
QML基础语法五
是一个抽象控件,提供了按钮通用的功能,但本身无法直接使用。原创 2024-04-29 21:55:33 · 934 阅读 · 0 评论 -
QML语法基础四
在MouseArea没接受事件时,才可以继续传递,即当一个事件在MouseArea中处理,需要在其他事件处理器中设置 MouseEvent.acepted=false,该事件才能继续传播。例如1000ms的定时器,经过了500ms,突然去改变repeat值,则之前的500ms会重置为0,再过1000ms后才能触发。实现复杂的拖拽事件用到DragEvent,通过x、y获取拖动的位置,使用keys识别数据类型和源的键列表。键盘事件是在键盘上按下一个键时就触发,控件的focus设置为true,该控件便有焦点。原创 2024-04-27 12:10:43 · 1166 阅读 · 0 评论 -
QML语法基础三
定位器添加删除一个子Item时,可以使用Transition,添加动画效果 上述四个定位器都有 add move。如果可以通过x y width height 解决,尽量使用,因为布局管理器、定位器锚会占用大量内存和实例化时间。QML提供了多种布局管理器、定位器、基于锚anchors的布局、x,y,width,height等调整用户界面。将子项目排列在网格中,向网格中添加项目会按照从左到右,从上到下进行排列。可以从前向后,像流一样布局子项目,超出宽度自动话换行。populate属性。原创 2024-04-25 22:37:51 · 765 阅读 · 0 评论 -
QML语法计基础二
top: 30} 整数验证器 限制输入为10-30的整数。TextInput.PasswordEchoOnEdit 使用密码验码字符,在输入时显示真实字符。Text.StyledText 支持一些基本的html文本样式标签,要求标签必须正确配套。mapFromItem(item,x,y)将子容器坐标(x,y)映射到其父容器的坐标上。父容器的不透明度会影响到子容器,如果要设置不透明度,只需要更改子容器的不透明度即可。单词间距 正值加大间距 负值减小间距。原创 2024-04-23 23:04:09 · 703 阅读 · 0 评论 -
QML语法基础一
2.1声明:C++中通过Q_PROPERTY宏:QML中通过 property propertyType propertyName—>例子:property color nextColor。声明了一个color类型的nextColor属性,隐式为该属性创建了一个onNextColorChanged,如果nextColor值改变就会触发,即称之为onSignalName:(_,y)=>console.log(”: "+y) //只访问第二个参数,不访问第一个。原创 2024-04-18 22:44:55 · 1278 阅读 · 0 评论 -
Qt的Model-Deletage委托代理机制
处理编辑器的事件: 通过实现eventFilter()方法来处理编辑器的事件,如键盘事件;渲染特定类型的数据: 通过定制单元格的外观来渲染特定类型的数据,例如颜色,字体等;支持不同类型的编辑器: 支持不同类型的编辑器,例如文本编辑器,下拉列表编辑器等;编辑特定类型的数据: 通过创建编辑器来编辑特定类型的数据,例如日期,数值等。更新编辑器的尺寸: 通过实现sizeHint()方法来更新编辑器的尺寸;属性编辑器: 使用委托可以创建自定义属性编辑器来编辑特定类型的属性。原创 2023-11-16 14:35:50 · 705 阅读 · 0 评论 -
Ubuntu打包Qt deb程序
Ubuntu下打包Qt程序为deb安装包原创 2022-11-21 17:24:51 · 1112 阅读 · 0 评论 -
Qt Widget设置右键Qmenu菜单栏
QtWidget设置右键Qmenu菜单栏。原创 2022-07-22 13:41:11 · 976 阅读 · 0 评论 -
Qt事件与自定义事件处理
QObject 类是所有 Qt 对象的基类,是 Qt 对象模型的核心,所有 Qt 部件都继承自 QObject。QObject 及其派生类的单形参构造函数应声明为 explicit,以避免发生隐式类型转换QObject 类既没有复制构造函数也没有赋值操作符函数(实际上它们被声明为私有的),因此无法通过值传递的方式向函数传递一个 QObject 对象每一个 QObject 对象只能有一个父 QObject 对象,但可以有任意数量的子 QObject 对象A ma; B mb; C mc;ma..原创 2021-09-24 10:33:54 · 778 阅读 · 0 评论 -
Qt反射机制获取属性信息
一、反射系统1、QMetaProperty 类①、作用:用于描述对象的属性,可使用该类的成员函数获取对象属性的信息。②、该类拥有一系列的返回 bool 值的成员函数,用于判断属性的行为(见下表)isReadable() 可读返回trueisEnumType() 若属性的类型是枚举,则返回 trueisWritable() 可写返回 true isFinal() 声明属性时 FINAL 是否为 trueisValid() 属性有效则返回 true。 isFlagType()原创 2021-09-16 19:45:39 · 2593 阅读 · 0 评论 -
QVariant类和属性系统
一、QVariant 类使用QObject::property 函数可读取属性的值,使用 QObject::setProperty 函数可以设置属性的值,但是属性有很多种类型,怎样使用 property 函数返回的属性值具有正确的类型呢?为解决这个问题,使用了一个QVariant 来描述类型.QVariant 类用于封装数据成员的类型及取值等信息,该类类似于 C++共用体 union,一个QVariant 对象,一次只能保存一个单一类型的值。该类封装了 Qt 中常用的类型,对于QVariant 不原创 2021-09-16 15:54:18 · 1138 阅读 · 0 评论 -
Qt的属性系统
一、属性系统1.属性基础属性和类成员数据相似,属性可以使用元对象系统,和类数据成员存储方式不同。主要差别在于存取方式不相同,比如属性值通常使用读取函数(即函数名通常以 get 开始的函数)和设置函数(即函数名通常以 set 开始的函数)来存取其值,除此种方法外,Qt 还有其他方式存取属性值。注:一个属性都有与之相关联的数据成员,而采用的命名规则通常是加上 m_前缀,比如属性名为 a,则与之相关联的数据成员名称通常为 m_a。2.属性值进行存取使用 QObject::property 和 QOb原创 2021-09-14 17:30:56 · 929 阅读 · 0 评论 -
Qt元对象反射机制
一、元对象概念元对象功能:信号与槽、运行时类型信息、动态属性二、元对象实现条件1.该类必须继承自QObject类2.类的私有区域必须声明Q_OBJECT宏,该宏用于启动元对象特性,使用动态特性,信号和槽3.元对象编译器(moc)为每个QObject子类,提供了实现元对象特性必须的代码三、元对象系统运行原则1.moc编译器首先会去掉扩展语法当Qt程序启动了元对象属性时。2.moc编译器是一个类似于qmake的工具,用于读取分析C++文件,若发现类包含Q_OBJECT宏的声明,会生成另原创 2021-09-10 16:52:28 · 1381 阅读 · 0 评论 -
Qt QSS样式表总结
字体属性:(font)大小 {font-size: x-large;}(特大) xx-small;(极小) 一般中文用不到,只要用数值就可以,单位:PX、PD样式 {font-style: oblique;}(偏斜体) italic;(斜体) normal;(正常)行高 {line-height: normal;}(正常) 单位:PX、PD、EM粗细 {font-weight: bold;}(粗体) lighter;(细体) normal;(正常)变体 {font-variant: small-c原创 2021-03-08 14:36:50 · 3516 阅读 · 0 评论 -
Qt5基础回顾
1、Qt信号槽机制的优势(1)类型安全。需要关联的信号和槽的签名必须是等同的,即信号的参数类型和参数个数同接收该信号的槽的参数类型和参数个数相同。不过,一个槽的参数个数是可以少于信号的参数个数的,但缺少的参数必须是信号参数的最后一个或几个参数。如果信号和槽的签名不符,编译器就会报错。(2)松散耦合。信号和槽机制减弱了Qt对象的耦合度。激发信号的Qt对象无需知道是哪个对象的哪个槽需要接收它发出的信号,它只需在适当的时间发送适当的信号就可以了,而不需要知道也不关心它的信号有没有被接收到,更不需要知道是哪个对原创 2021-03-02 10:19:43 · 985 阅读 · 0 评论 -
Qt 使用QJson创建json字符串
string jsonStr;QJsonObject http_body;QJsonObject child_Json;QJsonArray child_array;for(int i=0;i<vPreseInfo.size();i++){ QJsonObject point_body; point_body.insert(QStringLiteral("presetPointIndex"),QJsonValue(vPreseInfo[i].m_iPreseID));.原创 2021-02-23 10:59:04 · 632 阅读 · 1 评论 -
Qt QPainter鼠标绘制线条、矩形、多边形
Qt通过鼠标绘制线条、矩形、多边形本质都是根据鼠标的坐标位移,使用QPainter的自带的函数进行绘制。具体代码如下:graphicspainter.h#ifndef GRAPHICSPAINTER_H#define GRAPHICSPAINTER_H#include <QWidget>#include "shape.h"#include "paintrectline.h"class GraphicsPainter : public QWidget{ Q_OBJECT原创 2021-01-20 16:09:00 · 6933 阅读 · 6 评论 -
Qt 窗口中控件拖动区域限制
在一个QWidget中拖拽一个控件并限制其在控件中移动不能超出范围,使用相对坐标进行处理,并且在限制时只能计算鼠标的坐标,不能依赖于控件的坐标做判断条件。具体代码,继承QWidget,重写鼠标事件 void mousePressEvent(QMouseEvent *event)override; void mouseMoveEvent( QMouseEvent * event )override; void mouseReleaseEvent(QMouseEvent *event)override;原创 2021-01-07 17:25:52 · 2779 阅读 · 0 评论 -
QTreeWidget实现节点过滤查询、获取QListWidgetitem的自定义控件
继承QTreeWidget重写一个类。原创 2020-12-29 17:05:12 · 1677 阅读 · 2 评论 -
QWidget|QFrame设置背景透明且可以带有边框颜色
之前在项目中有个需求:视频播放窗口电子放大功能,需要在播放视频的QWidget上绘制一个可以拖拽的矩形框,但是单独的drawRect并不能获得焦点去拖拽。于是乎就另外想到一个办法使用一个透明的QWidget覆盖到该窗口上,将其背景设置为透明即可,但是设置透明之后,其底色的黑色无法消除,经多方优快云博主的成果于一身,搞定了该需求。其实就是这么几点:设置背景透明setWindowOpacity(1);this->setAttribute(Qt::WA_TranslucentBackg原创 2020-12-23 15:02:08 · 7101 阅读 · 2 评论 -
Qt调用动态库文件的方式包含Linux、windows
最近公司项目全部要转向Qt,于是开始让我调研Qt中相关的插件的使用,由于Qt的DLL文件是可以带界面的,所以在Qt中使用DLL来封装以前的插件是非常合适的,本文将针对Qt在windows、Linux平台的调用方式进行总结,具体使用方式详见Qt调用动态库方式...原创 2020-06-04 13:59:43 · 414 阅读 · 0 评论 -
Qt5调用MFC ActiveX插件接口
Qt5中提供了调用ocx插件接口的方法,也提供了自己的插件开发方法QtActiveX的方式来开发插件。本博客仅说明在使用Qt5调用MFC的插件接口的方法。在windows系统中,打开盘符“C:\Program Files (x86)\Windows Kits\8.1\bin\x86或者 C:\Program Files (x86)\Windows Kits\8.1\bin\x64”找到程序 oleview.exe ,并以管理员模式打开该运行程序。如下图: 打开上述软件后,点击工具栏文件夹边上的.原创 2020-06-01 10:50:34 · 1633 阅读 · 0 评论 -
PyQt5学习笔记---信号与槽
注:信号与槽中信号和槽的关系一个信号可以连接多个槽 一个信号可以连接另一个信号 信号参数可以是任何Python类型参数 一个槽可以监听多个信号 信号与槽的连接方式可以是同步连接,也可以是异步连接、信号与槽的连接可能是跨线程、信号可能会断开。定义信号 PyQt的内置信号是自动定义的,使用PyQt5.QtCore.pyqtSignal()可以为QObject创建一...原创 2020-04-30 16:03:13 · 833 阅读 · 1 评论 -
PyQt5学习笔记---多线程---定时器
定时器:QTimer:提供了重复轮询和单词的的定时器先创建QTimer的实例,将其timeout的信号连接到对应的槽,并调用start()。常用方法 start(milliseconds) 启动或重新启动定时器,时间间隔为毫秒,如果定时器已经启动,将被停止并重新启动,若sigleShot为True,则只被激活一次 stop() ...原创 2020-04-30 15:55:46 · 1072 阅读 · 6 评论 -
PyQt5学习笔记---组件---菜单栏、工具栏、状态栏
QMenu:该类提供了一个可添加菜单栏的控件,也可用于创建上下文菜单和弹出菜单。每个QMenu对象可以包含一个或多个QAction对象或者级联的QMenu对象。创建一个弹出窗口,createPopupMenu()函数,menuBar()函数用于返回主窗口的QMenuBar对象。addMenu()函数可以将菜单添加到菜单栏。addAction()函数可以在菜单中添加操作。常用方法...原创 2020-04-30 15:42:49 · 617 阅读 · 0 评论 -
PyQt5学习笔记---组件---日期、日历、时间类
QCalendar:一个日历控件,提供了一个基于月份的视图,允许用户点击鼠标选择日期,默认选中时今天的日期。常用方法 setDateRange() 设置日期范围供选择 setFirstDayOfWeek() 重新设置星期的第一天,默认时星期日 Qt.Monday Qt.Tuesday Qt.Wednesd...原创 2020-04-30 15:24:18 · 778 阅读 · 0 评论 -
PyQt5学习笔记---组件2---绘图类、剪切板
PyQt5中的绘图类QPainter该类在QWidget上执行绘图操作,是一个绘图工具,为大部分图形界面提供了高度优化的函数。可绘制直线或者复杂的饼图等。绘制操作在QWidget.paintEvent()中完成。绘制方法必须放在QtGui.QPainter对象的begin()和end()之间。绘制一些较低级别的图形绘制功能。常用方法 begin() ...原创 2020-04-30 15:19:21 · 490 阅读 · 0 评论 -
PyQt5学习笔记三----组件---对话框类控件
QDialog对话框:QDialog是对话框的父类,子类大概有:QMessageBox、QFileDialog、QFontDialog、QInputDialog等等。常用方法 setWindowTitle() 设置对话框标题 setWindowModality() 设置窗口模态 Qt.NonMadal: 非模...原创 2020-04-30 11:47:06 · 348 阅读 · 0 评论 -
PyQt5学习笔记二----组件---按钮类控件
QAbstractButton:该类为抽象类,不能实例化,必须由其他的类继承它,来实现不同的功能常见的按钮类有:QPushButton、QToolButton、QRadiaButton、QCheckBox按钮类常用的方法如下所示: isDown() 按钮是否被按下 isChecked() 按钮是否已经标记 ...原创 2020-04-30 11:34:39 · 869 阅读 · 0 评论 -
PyQt5学习笔记二----组件---窗口、控件
QIcon 图标控件,为每一个窗口设置一个特有的图标。# -*- coding: utf-8 -*-from PyQt5.QtWidgets import QApplication,QWidgetfrom PyQt5.QtGui import QIconimport sys#创建一个名为Icon的窗口,继承自QWidgetclass Icon(QWidget): de...原创 2020-04-30 11:16:33 · 627 阅读 · 0 评论 -
PyQt5学习笔记二----组件---窗口类介绍
Qt5中窗口类型分为三类 QMainWindow、QWidget、QDialog。QMainWindow:继承自QWidget,窗口包含菜单栏、工具栏、状态栏、标题栏等,是GUI主窗口。不能设置布局。 addToolBar() 添加工具栏 centralWidget() 返回窗口中心的一个控件,未设置时返回NULL...原创 2020-04-30 10:53:02 · 674 阅读 · 0 评论