![](https://img-blog.csdnimg.cn/20210706154405961.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Qt
分享Qt开发中的点滴
DongDongBaJiaYou
Always believe that something wonderful is about to happen!
展开
-
QProcess启动多个外部程序
其次也可以使用QProcess的方法setWorkingDirectory()方法,但是实测有时有问题。最近需要使用不同参数将一个EXE启动多个进程,遇到了启动不成功的情况,在此做个记录。再者也可以使用QProcess的startDetached()方法的第三个参数。大家都知道Qt与外部程序通讯的其中一种方式:QProcess。后面两个方法测试过程中会出现启动不成功的情况。原创 2024-02-21 14:13:11 · 367 阅读 · 0 评论 -
Qt实现窗口吸附屏幕边缘 & 自动收缩
Qt实现窗口吸附屏幕边缘 & 自动收缩原创 2024-02-01 17:00:17 · 864 阅读 · 0 评论 -
Qt实现类似ToDesk顶层窗口 & 不规则按钮
Qt实现类似ToDesk/迅雷顶层窗口;Qt不规则按钮实现;原创 2024-02-01 16:06:07 · 972 阅读 · 0 评论 -
QSS样式表简单梳理记录
QSS样式表简单记录梳理记录原创 2024-02-01 15:13:51 · 234 阅读 · 0 评论 -
带数字的字符串排序Qt
但是遇到字符串中包含1、2、3、10、11、12、21、22、31这种时,顺序就会乱掉;日常开发中排序操作是很常见的,大多时候使用qSort默认方式,就可以满足需求;原创 2024-01-12 16:28:03 · 449 阅读 · 0 评论 -
Qt使用Cryptopp生成HMAC-MD5
Qt使用Cryptopp生成HMAC-MD5算法码原创 2023-12-08 16:51:52 · 345 阅读 · 0 评论 -
Qt重启windows服务
日常开发中,会遇到改变某个服务的参数,并进行重启(例如Redis断电恢复机制)原创 2023-11-10 17:54:40 · 413 阅读 · 0 评论 -
窗口闪烁&QWidget多窗口鼠标透传&QWidget底色设置
窗口闪烁;鼠标透传;QWidget底色设置原创 2023-09-14 10:46:52 · 354 阅读 · 0 评论 -
qml使用QAbstractListModel作为数据源
但是后台数据的提供还是用qt c++的实现,MVC中即可用Model进行。主要在于beginRemoveRows&endRemoveRows中间进行的操作,将待删除元素取出,在model实际数据存储处进行remove,最后再将元素彻底delete。主要在于beginMoveRows&endMoveRows中间进行的操作,将待移动项取出并插入到新位置。二、又例如想进行元素的删除,也需要model进行支撑。一、例如想进行元素的移动,就需要model进行支撑。但是想要一些其他的功能,就需要自己去实现了!原创 2023-08-26 23:27:30 · 406 阅读 · 0 评论 -
QtWidgets和QtQuick融合(QML与C++融合)
1.2.也可以直接在其他类中直接返回该类指针,直接给qml进行使用(当然前提也是其他类也进行了注册,已经在qml里实例化了)。1.1.可以直接在qml中进行该类的实例化,进而进行访问(qmlRegisterType时需要添加参数);2.1.也可以直接继承QAbstractListModel等类,进行实例化,qml中可以直接访问相关。qmlRegisterType注册类时,带了namespace的类,类指针在qml中是不能够访问的。qml中访问只能访问类的指针,不能访问类对象;主要在于红框中的方法的重写。原创 2023-08-26 23:08:36 · 1006 阅读 · 0 评论 -
QtCreator指定Windows Kits版本
先说下事件起因:之前一直在用Qt5.12.6+vs2017在写程序,后面调研了一个开源库Qaterial,但是翻来覆去的编译都有问题,后面升级到了Qt5.15.2+vs2019来进行cmake的编译,搞定了Qaterial,但是返回来编译原来的工程,结果出错,而且还是C++库的问题,后面就找了资料,看了自己电脑里C:\Program Files (x86)\Windows Kits\10\Lib下有两个版本的sdk,vcvarsall.bat应该默认使用的是最新的sdk,因此出现了问题。原创 2023-08-26 21:59:24 · 765 阅读 · 0 评论 -
QtCreator中设置自定义注释格式
另外QtCreator中支持Doxygen,在函数前直接打/**加回车,会直接进行函数的注释添加!QtCreator--工具--选项--文本编辑器--片段--组:C++--添加。点击Apply,并且Ok。原创 2023-08-18 15:20:35 · 261 阅读 · 0 评论 -
C++面试题
【代码】C++面试题。原创 2023-06-19 14:16:13 · 193 阅读 · 0 评论 -
Qt守护进程相关
【代码】Qt守护进程。原创 2023-06-15 18:01:23 · 592 阅读 · 0 评论 -
Qt多级表头(QTableView表头合并)
头文件的每个部分都由其section()指定的节ID描述,并且可以位于头文件中的特定visualIndex()中。它取代了Qt3先前用于相同目的的QHeader类,但使用Qt的model/view体系结构与item view类保持一致。每个头文件都有一个orientation()和若干节,由count()函数给出。A section指的是标题的一部分——根据方向,可以是行,也可以是列。对于水平标头,该部分相当于模型中的一列,而对于垂直标头,该部分相当于模型中的一行。转载 2023-06-14 22:17:48 · 2427 阅读 · 0 评论 -
std::map与QMap插入效率对比
结论:在C++11加持下,std::map的emplace看来是最好的方法了!上一篇文章介绍了std::map在普通operator[]赋值的流程。可以看到,使用emplace是优的!不管在写法还是效率上都是最优的!可以看到,使用insert是最优的!不管在写法还是效率上都是最优的!原创 2023-06-08 15:51:35 · 494 阅读 · 0 评论 -
std::map的使用
对于自定义类型Student而言,作为Value插入到std::map中,没有写默认构造函数,编译器报错,为了探明原因,就把Student类的几个重要函数都写了出来并且配合qDebug信息输出,找出了真正原因:std::map在插入新值的时候会先调用默认构造函数,然后调用赋值构造函数!原创 2023-06-08 11:47:32 · 249 阅读 · 0 评论 -
CTK编译没有ctkEventAdmin
Configure,Generate完成后直接Open Project使用VS进行编译,ctk源码编译,默认时不会生成下面这4个库的,如果需要使用插件间通讯,则需要将设置打开。CMake中将CTK_ENABLE_PluginFramework进行勾选,如下图。在my_build\CTK-build\bin\Debug下就有如下dll生成。接下来就可以使用CTK进行插件化编程了!原创 2023-05-22 15:24:55 · 80 阅读 · 0 评论 -
Qt使用CTK插件机制
Qt的插件机制当然也就是使用Q_DECLARE_INTERFACE、Q_INTERFACES、Q_PLUGIN_METADATA三个宏。其实CTK插件机制,还是应用的Qt的插件机制,只不过使用了中介者模式可以对自定义的插件进行管理并且提供可以互相通信的一个媒介。Qt的插件机制也是建立在Qt元对象系统基础之上的,Qt元对象系统主要提供了Qt的信号槽、RTTI、动态属性系统。第三个宏的作用是插件元信息&元信息获取&插件实例句柄获取的功能。前两个主要是RTTI的实现和插件有效性检测;原创 2023-05-15 11:44:12 · 434 阅读 · 0 评论 -
自定义带复选框QComboBox,包括代理
工作中不乏这样一个需求:给ComboBox加上复选框,并且可以实时显示勾选内容。扩展到Model-View框架中就形成了一个代理,对单元格中的内容进行自定义。原创 2023-05-08 17:44:18 · 661 阅读 · 0 评论 -
Qt文件编码转换
主要使用QFile、QTextStream及QTextCodec三个类,先进行文件编码的识别(ANSI、UTF-8、UTF-8 BOM、UTF-16 LE、UTF-8 BE),再进行文件编码的转换。主要用于Qt项目中源代码的批量转换,从ANSI或UTF-8转换为UTF-8 BOM。原创 2023-04-24 11:38:08 · 1557 阅读 · 0 评论 -
Qt自定义饼图(重叠、切片、圆环、高亮)
由于项目中遇到饼图各个切片重合的情况,虽然可以通过设置透明度进行颜色融合,但仍然不能满足需求,思考再三,想出普通饼图+环形外框的方案,大家一起来看看效果吧!原创 2023-03-23 14:31:57 · 351 阅读 · 0 评论 -
Qt水波进度条
【代码】Qt水波进度条。原创 2023-03-23 10:36:01 · 265 阅读 · 0 评论 -
Qt自定义QAbstractItemModel实现文件夹/文件树
VVTreeItem包含type、value、父节点、子节点4个必要属性,及几个附加属性。另外对于View中的数据,可以自定义展示方式,使用代理。QAbstractItemModel是。原创 2023-03-22 17:55:30 · 1107 阅读 · 3 评论 -
Qt撤销/回撤框架
它将撤消和重做请求转发到活动堆栈,活动堆栈是与用户当前正在编辑的文档相关联的堆栈。step2:在操作的地方,创建一个QUndoCommand实例,并且push进QUndoStack,此时会自动调用Command的redo()方法;想必大家都有这样的需求:Ctrl+Z、Ctrl+Y进行用户操作的撤销和回撤,Qt框架中有Qt's Undo Framework供大家使用。它包含了在文档上执行的所有命令,并可以通过撤消或重做它们来前后滚动文档的状态。单击视图中的命令会将文档的状态向后滚动或转发到该命令。原创 2023-03-22 16:44:25 · 1180 阅读 · 0 评论 -
Qt信号分组管理
通过关联QPushButton的click()信号到QSignalMapper的map()槽函数,并且通过setMapping方法,将每个QPushButton的click()信号进行映射,我们就可以将这一组QPushButton重新进行了组织,点击每个按钮,都会发出clicked(QString)信号,通过QString参数可以知道具体是哪一个按钮进行了点击。原创 2023-03-22 11:27:08 · 156 阅读 · 0 评论 -
Qt动画,让你的程序更炫酷
你是否想让自己的程序给人眼前一亮的感觉,显得逼格高一点?启动动画在MainWindow构造函数的最后加上即可。关闭动画在原本调用close()的地方调用就可以了。原创 2023-03-22 09:35:51 · 322 阅读 · 0 评论 -
Qt属性面板
1.1.Qt安装路径下的:~\Qt\Qt5.9.8\5.9.8\Src\qttools\src\shared\qtpropertybrowser。在自己项目中直接进行包含:include(../../src/qtpropertybrowser.pri)就可以开始使用了。原创 2023-03-22 10:45:48 · 1012 阅读 · 0 评论 -
Qt无边框基类(支持拖拽、最大化动画、半屏动画、最大化拖拽还原)
【代码】Qt无边框基类(支持拖拽、最大化动画、半屏动画、最大化拖拽还原)原创 2022-08-21 20:36:21 · 2641 阅读 · 3 评论 -
QtCreator配置命令行参数
QtCreator配置命令行参数原创 2022-06-16 11:43:03 · 908 阅读 · 0 评论 -
动态提示QProgressBar
效果图思路:1.继承Qt已有的QProgressBar2.重写其void paintEvent(QPaintEvent *e)函数 2.1类内创建一个成员变量int curVal; 2.2用QTimer不断增加curVal的值,到了QProgressBar的value()值以后重新置零,循环往复。重要实现代码:void MyProcessBar::paintEvent(QPaintEvent *e){ QProgressBar::...原创 2021-07-15 14:32:20 · 284 阅读 · 0 评论 -
QSortFilterProxyModel实现排序、过滤
1.QsortFilterProxyModel介绍QsortFilterProxyModel类用来为model和view之间提供强大的排序和过滤支持。将模型排序或者过滤后在视图上显示,并且无需对模型中的数据进行任何转换,也无需对模型在中数据进行修改。比如: 对某列筛选带有”xxx”的关键字出来.并支持多则表达式使用代理的项视图模型代码如下:QTreeView *treeView = new QTreeView; MyItemModel *sourceModel = new MyIte.转载 2021-07-06 10:38:20 · 8655 阅读 · 3 评论 -
QAbstractTableModel的sort方法实现排序
1.QabstractTableModel常用功能QAbstractTableModel子类化时,必须覆写:Int rowCount();//返回显示的行数int columnCount();//返回显示的列数Qvariant headerData(int section, Qt::Orientation orientation, int role);//返回标题role角色对应的值// section:段号,从0开始,对于Qt::Horizontal水平标题,则是每列的标题名,对转载 2021-07-06 10:33:25 · 1595 阅读 · 2 评论 -
Qt命令行参数类
QCommandLineParser parser;QCommandLineOption option("命令②名称", "命令说明", "命令所带参数");parser.setApplicationDescription("程序名描述");parser.addHelpOption(); //将--help加入.原创 2021-06-28 23:38:40 · 341 阅读 · 0 评论 -
Qt .pro文件常用命令说明
-Wl,-Bstatic指示跟在后面的-lxxx选项链接的都是静态库,-Wl,-Bdynamic指示跟在后面的-lxxx选项链接的都是动态库例如:LIBS += -Wl,-Bstatic -lssh2 静态链接ssh2库LIBS += -Wl,-Bdynamic -lssl 动态链接ssl库添加库目录和库文件LIBS +=-L后面跟路径,表示添加库目录LIBS +=-l后面跟库名,表示添加具体的库添加编译器对C++11的支持QMAKE_CXXFLAGS += "-st...原创 2021-06-28 23:36:27 · 886 阅读 · 0 评论 -
Qt内置图标一览表
在Qt助手索引中输入QStyle::StandardPixmap即可查看详细描述。Qt内置了一些图标,一共有71个(Qt 5.9.8),不同的平台下图标有所差异。原创 2023-03-20 22:11:06 · 2269 阅读 · 0 评论 -
Qt编写自定义插件
QtDesigner自定义窗口部件有两种方法:改进法(promotion)和插件法(plugin)改进法1、改进法之前,要先写好子类化QSpinBox后的HexspinBox.h和HexspinBox.cpp文件。把这两个文件拷贝到想要的项目中。HexspinBox.hCpp代码 #ifndef HEXSPINB转载 2015-05-26 21:35:24 · 742 阅读 · 0 评论