
Qt编程
文章平均质量分 66
一些Qt编程经验、代码
逆枫゛
武汉科技大学计算机系毕业,曾就职于国内一线的虚拟现实和信息安全公司,10余年C++/Qt开发经验。2017年辞职,与朋友合伙创办了一家新能源公司,一年后获得行业龙头投资,目前快速发展中。
展开
-
Qt初学者的一些学习方法、参考资料
1,简介最近有一些朋友加我,询问Qt入门学习的方法、资料 我基本都一一作答,根据情况给出了一些参考意见 感觉很多新手开始学习时很迷茫,不知道学习哪些方面、看什么资料 这里干脆写一篇文章,把自己的学习过程给大家介绍一下,包括一些对于学习的想法2,开始熟悉Qt如果你是完完全全的新手,刚开始学习Qt,那么推荐你先看一下我关于Qt的一篇入门介绍的PPT, 里面简单介绍了Qt是什么、...原创 2018-06-07 21:15:47 · 17962 阅读 · 15 评论 -
Qt6相对Qt5的主要提升(AI总结)
在 Qt 6 中,可以通过QProperty在类中声明属性。以下是一个简单的例子:cpp复制Q_OBJECTpublic:signals:private:在这个例子中:使用Q_PROPERTY宏声明了一个名为value的属性。使用MEMBER关键字将属性与类的成员变量m_value绑定。定义了一个信号,用于在属性值改变时发出通知。QProperty系统是 Qt 6 中一个重要的改进,它不仅提供了更高效的属性管理和通知机制,还与 QML 和信号槽机制无缝集成。通过QProperty。原创 2025-03-24 18:24:08 · 1070 阅读 · 0 评论 -
Qt多工程同名字段自动翻译工具
项目里不同工程经常会引用同一批公共类,这些类里如果有字段需要翻译,需要在不同的项目里都翻译一遍,比较麻烦冗余。特此开发了这个小翻译工具,能读取程序目录下的所有ts文件,以类名归类,不同项目里类名相同的字段,只需要有一个项目里翻译过,就可以对所有其他项目内的同类名下的该字段自动翻译上。避免了大量重复翻译工作。原创 2023-10-10 11:46:07 · 948 阅读 · 2 评论 -
Qt商业级无边框窗口实现源码(windows)
之前发布过几篇关于Qt实现无边框窗口的文章,当时在网上苦苦搜寻了很久,也没有好用的,总缺点意思。哪怕最后找到的一个知名博主的实现,虽然看着效果可以,但是我由于在项目里重度使用,也测出了一些缺陷。比如拖拽的最大化、还原功能,比如拖拽到屏幕角落的1/4屏幕效果。后来在与一个技术大牛的合作下,实现的一版非常接近于windows原生效果的无边框窗口代码。完美实现了基本能想到的所有功能。成功让一个Qt无边框窗口,能具有和普通windows窗口几乎完全一样的操作效果!原创 2023-03-29 21:39:14 · 1136 阅读 · 3 评论 -
Qt使用7z压缩和解压示例(支持文件夹递归、多文件不同位置)
Qt自带的压缩处理类功能不太完善,也不支持中文路径。这是我封装好的一个Qt调用7z处理压缩解压的工具类 ZipAPI,提供了几个简单易用的接口。写压缩解压代码从此非常方便快捷!原创 2022-11-16 20:16:57 · 2270 阅读 · 1 评论 -
Qt保存窗口尺寸,配置类升级版(保存分隔条)
之前介绍了一个保存窗口尺寸的配置类,但是功能比较单一,只能保存和恢复窗口的尺寸。实际上如果要更好的用户体验、更贴心点,也需要把窗口内分隔条的分割尺寸也保存下来。下面这个类是我后来升级的版本,可保存含有1~2个分割条的窗口,需要更多稍微改改即可。原创 2022-10-20 12:51:16 · 411 阅读 · 0 评论 -
编程到底应该怎么学
一文解惑如何学习编程效率最高,如何拥有正确的学习心态原创 2022-06-10 18:36:40 · 769 阅读 · 4 评论 -
分享为部门做的《Qt入门介绍》PPT课件
之前的公司一直是用MFC+DUI,由于跨平台的需求,安排我先行研究Qt。 然后部门经理让我给同事们做一次Qt入门培训,这是当时准备的PPT课件。 想到网上还有更多的初学者,可能一样有帮助。 不过我当时做这个培训时,也没有学习多久,理解有限,还望见谅。下载地址: Qt入门介绍PPT课件...原创 2018-05-25 13:04:21 · 7043 阅读 · 5 评论 -
Qt开发环境搭建的建议、下载地址
1,简介群里很多小伙伴在纠结Qt开发环境的问题,究竟用QtCreator还是VS?其实各有利弊。这里专门写一篇文章,说下我的想法,以及我的实际使用环境。2,用QtCreator还是VS对于新手:考虑到大家刚开始学习,一般研究些小型项目,QtCreator差不多够用了。而且QtCreator上可以直接搜索打开各种Qt官方demo。别耽误太多时间在环境上,直接研究代码最重要。对于熟悉VS的、有一定开发经验的:那当然可以直接用VS了...原创 2020-09-06 15:06:06 · 1743 阅读 · 0 评论 -
经验分享:Qt一些超实用的快捷键
1,代码自动对齐之前帮一位新手调试代码,看到他的代码排版简直是“随心所欲”,变量和函数对自己的摆放位置“各有自己的想法”,惨不忍睹……与之谈及此事,言:调整对齐太麻烦,懒得搞。作为他口中“大神”的我,自然神秘一笑,小朋友,哥教你一招:CTRL+A、CTRL+I自动对齐所有代码,赏心悦目有木有?!!!深藏功与名,留其一脸懵逼、大呼神奇2,转到定义/声明 F...原创 2019-12-03 06:40:28 · 1034 阅读 · 0 评论 -
Qt设置多处理器编译,提高编译速度
1,简介刚接触Qt时有个感觉,就是Qt自带的开发工具编译代码的速度感觉没有VS快。后来才知道,其实因为我用的VS默认开了多处理器编译,而Qt需要设置一下来打开该功能。对于大点的项目,该设置可以节约很多时间,非常实用!2,对单个项目设置在项目的设置界面中,如图在make参数中填入 "-j n" (n为你电脑CPU核的数量)例如: "-j 8"3,在Q...原创 2017-09-19 23:50:06 · 1214 阅读 · 0 评论 -
Qt pro工程文件区分debug和release、32位和64位的方法
在Qt工程文件内设置根据debug/release以及32/64位分别输出到不同目录:(WINDOWS平台)pro文件:QT += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += debug_and_releaseCONFIG(debug, debug|release){ ...原创 2019-11-11 08:32:22 · 7027 阅读 · 0 评论 -
关于Qt的一些碎碎念……
1,Qt的调试真不好用啊!!!运行慢不说,查看堆栈经常只能看到几个很底层的函数,看不到自己代码!!!对于分析代码毫无鸟用啊!太鸡肋了!或许是我使用的方式不对吧!但是换VS就能定位到代码!2,除了调试功能,qtcreator写Qt代码比VS舒服很多!虽然VS+小番茄提高了很大的便利性但是识别Qt的类还是不靠谱,时不时就出现不能查看定义或引用的情况了!而qtcre...原创 2019-12-11 19:46:45 · 734 阅读 · 1 评论 -
QT写的U盘批量复制小工具
1,简介UDiskCopy :U盘批量复制工具开发背景:公司出货时软件安装包及其他电子档文件,是采用定制的小容量U盘存储的,之前是生产人员一个一个手动拷贝到各个U盘,现在量增大,一次要出几十上百个备用,于是买了USB HUB,搭配该工具用于批量复制,提高制作效率。2,界面截图3,主要代码MainWindow.h:#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>namespace Ui {c原创 2021-01-28 10:35:19 · 2567 阅读 · 0 评论 -
Qt无边框窗口1,简单示例
1,简介现在较多软件使用扁平化的界面风格,设计的很漂亮,感觉也比较简约。这里给出一种QT是实现这种扁平化窗口的主窗口的示例,实现一些基本的标题栏拖放、最大最小关闭按钮等处理。2,效果3,设计思路外观:MainWindow去掉菜单栏、工具条、状态栏等,添加1个widget作为标题栏,它和内容区域使用垂直布局。标题栏添加QLa原创 2017-09-03 21:39:50 · 10534 阅读 · 5 评论 -
Qt无边框窗口2,带缩放(右下角)
1,简介之前介绍过实现无边框窗口的简单方法,包含了标题的拖拽、最大最小关闭按钮,双击最大化恢复等功能。如图:但是这个方案有一个缺陷,那就是不能自由缩放窗口尺寸。如果默认尺寸不是很适合内容,那么只能选择最大化。在网上找了一些方案,不是太理想。要么是有细节处理不完美,要么是实现方式太过复杂,有一群类需要自己认真剥离出来。而我直观感觉,应该是很原创 2017-09-26 01:47:17 · 4987 阅读 · 1 评论 -
Qt无边框窗口3:自由缩放(各个角+边框)
1,简介前面写过2篇Qt无边框窗口的文章:文1 介绍主窗口、标题栏制作文2 增加了右下角缩放窗口但其实效果还不够理想这次介绍一个终极版本,4个边框4个角都可以随意缩放代码原版源自博主“一去二三里”我修复了一个细节问题并制作了这个demo演示效果和调用方法2,效果3,演示Demo源码下载Qt无边框窗口3 终极版,自由缩放(各个角+边框):链接:https://pan.baidu.com/s/1q-LPlyr57E...原创 2020-08-31 21:29:08 · 2481 阅读 · 6 评论 -
自制ToolBox,支持自由展开多组
1,简介有时候需要类似QQ好友列表这种ToolBox效果,不过QT自带的ToolBox貌似只支持同时展开一个组。这里自己动手做一个。2,原理其实说起来没什么,就是一个垂直布局。组的点击2种状态,使用的上一节介绍的自制CheckBox。改造QCheckBox,单机内部任意地方都可选中点击这些组(CheckBox)原创 2017-10-17 01:15:39 · 2742 阅读 · 4 评论 -
改造QCheckBox,单机内部任意地方都可选中
1,简介QT自带的复选框QCheckBox,只有当点击在方块图标或者文字内时,才会有选中/取消选中的效果。(这里为了显示QCheckBox范围,将背景着色)而有时候,我们需要点击背景也能选中,以实现一些特殊的效果。2,思路直接自绘实现其实也比较简单,这里介绍改造QCheckBox类的方法。观察QCheckBox,当鼠标原创 2017-10-17 00:15:14 · 2248 阅读 · 4 评论 -
改造QTabWidget的QTabBar,自绘随意控制样式,不同颜色
1,简介本文介绍通过自绘,随意定制QTabWidget的 TabBar的方法可设置不同Tab页的不同背景色、前景色、边框、鼠标三态色,以及绘制其他自定义内容(如角标)2,效果3,主要思路主要工作就是继承QTabBar,重写 paintEvent 函数另外由于QTabWidget 的setTabBar函数为protected,因此为了替换 TabBar ,也继承了一份QTabWidget ,在构造函数内替换因此要注意,demo里 ta...原创 2021-04-28 13:01:52 · 7465 阅读 · 5 评论 -
Qt可拖拽排序表格(类似QQ好友分组排序)
1,简介为了最佳体验,一个拖拽行排序的功能研究了几个小时。效果参考的QQ好友分组的排序。网上查了下好像没有人发布QT版类似的代码,于是自己动手QQ好友分组排序效果:2,效果这是最终效果图,有小伙伴说看起来很流畅,事实确实是很流畅的。3,思路拖拽:就是QT的一套拖拽功能的类,QDrag、QMimeData,和原创 2017-08-16 01:37:42 · 7582 阅读 · 8 评论 -
Qt以资源管理器打开文件夹(支持带空格目录、支持打开远程共享目录)
1,简介项目里有一个打开文件夹的功能,调用windows资源管理器定位到一个特定的目录。该目录是用户自己设定的,可以是共享文件夹。在网上搜了些Qt打开文件夹的方法,都不理想。能打开普通目录的,打不开带空格的;打开带空格的却不支持网络路径。经过试验和测试,讲其中一种方法的路径做些调整,可以完美满足上面的要求。2,分析使用的函数:QDeskt原创 2017-10-23 18:17:09 · 12348 阅读 · 4 评论 -
Qt把控件截图并保存到剪切板、保存到图片文件
1,简介界面某个数据展示控件,让用户可以复制到剪切板,方便粘贴到其他地方如QQ、word里面直接拿去交流使用;同时也可以保存到磁盘作为图片文件,作长期存储。就和QQ聊天窗口的下面2个右键菜单功能一样:2,效果2.1表格右键菜单:复制、另存为2.2复制的内容 粘贴出来的效果,只有该控件区域2.3另存为调起保存图片对话框2.4原创 2017-09-03 17:25:58 · 5740 阅读 · 0 评论 -
Qt保存窗口上次的尺寸,通用简单的配置类
1,简介项目里常常需要把用户调整的各种窗口尺寸保存,下次打开同样的窗口时自动应用上次设定。这里提供一个简单的配置类写法,根据窗口类名自动写对应配置,调用起来非常方便。效果:2,配置类代码ConfigMgr.h:#ifndef ConfigMgr_H#define ConfigMgr_H#include <QString>#include <QWidget>//单实例配置类class ConfigMgr{public:原创 2021-06-28 18:21:29 · 686 阅读 · 0 评论 -
Qt信号槽设计简谈
作者:姚冬链接:https://www.zhihu.com/question/27040542/answer/35141912来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。被邀请了很久了,一直在思考,今天终于下决心开始写回答。这个问题的确是够大的,Qt的代码规模在整个开源世界里也是名列前茅的,这么大的项目其中的精华是非常多的,很难说得全面,实转载 2017-09-21 03:16:19 · 781 阅读 · 0 评论 -
Qt Object模型及其线程和事件处理
几个重要结论QObject、线程和事件处理对象类图如下: 大多数Qt类的实现都采用”外部接口类+内部实现类“,即QAbc类作为接口给用户使用,但QAbc类的功能基本上在QAbcPrivate实现。 每个线程都以QThread实例表示,并且在内部拥有一个QThreadData来表示线程的基本数据。 每个线程维护了一个QPostEvent队列,用来保存待处理的事件(如鼠标、键盘转载 2017-12-29 14:19:48 · 1185 阅读 · 0 评论 -
QT源代码阅读
我们进入 qt/src 文件夹。你可能对这里的目录名时曾相识,因为几乎这里的所有文件夹名都对应着 Qt 的模块的名字:gui,network,multimedia等等。我们从最核心的 QtCore 开始。这个模块对应的是corelib文件夹。首先我们要去寻找 QObject 这个类。之所以选择 QObject,一是因为它是 Qt 的核心类,另外一个很重要的原因是,QObject类是一个典型转载 2018-02-04 16:41:08 · 16612 阅读 · 5 评论 -
QT高级编程技巧(一)-- 编写高效的signal & slot通信代码
关于QT的线程通信,我们都会想到signal & slot机制。先回顾下利用signal & slot机制实现控件消息处理的方法。控件消息处理假设我们的主界面上有一个使用ui->btn指向的QPushButton对象,要实现该对象的clicked消息处理,可以在主界面对象MainWindow上添加一个slot方法onBtnClicked,并在其构造函数中使用connect方法与ui转载 2018-02-05 17:46:33 · 4046 阅读 · 0 评论 -
QT高级编程技巧(二)-- 编写多线程和并发应用
学习QT多线程编程之前,有必要先熟悉事件循环的概念。先看一个单线程界面程序的主函数代码:int main(int argc, char* argv[]){ QApplication app(argc, argv); // 构造主窗口对象并显示 MainWindow w; w.show(); // 进入事件循环 return app.exec();}在转载 2018-02-05 17:47:32 · 3949 阅读 · 1 评论