- 博客(70)
- 资源 (2)
- 收藏
- 关注
原创 QLabel显示图像性能低,影响QChart效果,动态仪表的优化
测试中发现,仪表和故障灯动态更新时,图表中的曲线闪烁严重。最终使用画笔重做了故障灯,完美解决,很多朋友还用画笔模拟动画,性能也不错。
2024-09-25 21:45:39 925
原创 Qt报错undefined reference to的一个愚蠢原因——添加文件
当把源代码复制到项目中时,因为通常都有设置依赖路径,所以忘了添加到项目也能找到头文件(容易麻痹),但是不能找到源文件,这是出错的根本原因。
2024-09-24 10:19:03 151
原创 【qt信号槽-6】槽函数不执行的一种原因——未知线程
为什么发出信号没问题,只有槽函数出问题呢?因为发信号是通知别人,而槽函数是基于事件循环的响应,本质上是对消息队列的处理。而所谓线程,最重要的就是消息队列的附加。这点看qt源码可以得到证实。诡异的子线程,有可能导致槽函数失灵。
2024-09-13 11:40:01 859
原创 QtChart做个动态更新的曲线
qt需要把图表chart画在画布chartview上,所以界面上得先有个chartview,就是个widget的提升。新建一个chart对象,添加到chartview上。新建点集对象series,添加到chart。新建坐标轴对象,把series锚定到坐标轴。
2024-09-06 13:43:47 685
原创 【Qt线程-7】QThread、QThreadPool+QRunnable怎么选
我觉得如果不是特别强调性能的业务,还是使用QThread+moveTothread方式,能规避好多零碎的问题,并充分利用qt的设计特性。至于开销,可以自己手动控制线程的创建和销毁。比如预知线程的数量,减少创建和销毁次数。
2024-05-24 11:47:15 406
原创 Qt源码调试步骤记录
其实,继续跟踪qt的事件循环处理,会发现它最终本质就是手册里说的那样,其实是消息队列处理。再往深的说线程和movetothread,本质上还是基于消息队列。
2024-03-27 15:47:42 1604
原创 Qt访问odbc(access)遇到的问题
windows中的odbc中,预制了很多基础的数据库驱动,这在2000年上大学时,做项目就研究过。所谓驱动,无非就是一些dll,和注册表键值指向。如果要自己做个安装程序去部署客户机,对照本机开发环境,去设置注册表和复制dll即可。亲测没问题,这就是windows的机制。
2024-03-21 11:26:22 707
原创 【qml-2】尝试一个有模式的qml弹窗
学习qml,本次想尝试一个弹窗。之前按照网上的代码模仿了一下,没卵用,它并不是真正的有模式,鼠标点一下旁边区域,它就消失了,而且界面难看至极。也许是之前没玩过qml,可能是哪里操作不对了,所以还是尝试自己做一个。
2024-01-17 10:50:32 1056
原创 【Qt-license】误操作qt下载导致只能安装商业版试用十天,无法安装社区版
下载qt时,如果误选了商业试用,官方会生成试用授权,安装程序就无法执行免费社区版安装。
2024-01-17 10:11:57 5709 1
原创 【qml-1】第一次尝试qml与c++交互
既然是前后端分离设计,就尽量遵循松散耦合的初衷。后端c++用于写逻辑,就像写库一样,考虑好用途和接口,只要调试通过,就不用管了。只需要把qml当做使用者,去调用c++即可。
2024-01-10 16:32:10 1263
原创 【QT表格-6】QTableWidget的currentCellChanged实现中途撤销
根据用户的选择,确定QTableWidget::currentCellChanged信号的槽是否继续。
2023-12-20 16:59:39 1847
原创 【qt信号槽-4】槽函数不响应不执行的一种原因:ui提升导致重名
槽函数不执行,不仅仅是常说的connect或者元数据注册问题。毕竟qt按照名字on_XXX_signal匹配信号槽的做法,跟connect还是有区别,这个感兴趣可以分析源码。
2023-12-09 11:50:56 1323
原创 【QT表格-5】QTableView用代码设置选中状态
按照网上普遍的说法,只要搜这个话题,基本都是setCurrentItem,这个确实可以,但如果要选中多个呢?
2023-12-05 16:30:33 2051
原创 QStandardItemModel,setData和setItem区别
setItem是自动的,随心所欲,setData是依赖model行和列的数量的,如果setData成功,会创建和更新相应的item,返回true。否则返回false,一切无效,但不报错。这也是特别要注意的。如果不小心使用了它,没有判断返回值,一旦出错,一时很难定位。
2023-11-02 08:58:04 1225 1
原创 【QT表格-4】由QTableView/QTableWidget显示进度条和按钮,理解qt代理delegate用法
我认为还是始终贯彻MVC模式的应用,比如一个view绑定了一个model,则model的数据是和view同步的。主要是继承QStyledItemDelegate之后,重写那几个函数的意义。
2023-11-01 10:24:59 3252 13
原创 【Qt样式(qss)-5】qss局部渲染混乱,错乱,不生效的一种原因
一旦局部组件被显式地单独渲染,就会启用局部优先规则。一旦启用局部有限规则,全局渲染时就会绕开已经被渲染的局部组件。但其实,我觉得更好的方式是:它应该去只绕开显式局部渲染的组件,而不是有渲染就绕开。
2023-10-25 09:50:16 985
原创 【Qt线程-6】获取当前线程id,thread()和currentThreadId(),不是想当然那样,不使用信号槽可能看不出区别
QThread *thd = new QThread仅仅是构造了一个指针对象,它代表不了真正意义上的线程。它的生存线程依然是父线程。
2023-08-17 10:47:08 6164
原创 【QT表格-3】QTableWidget导入/导出excel通用代码,不需要安装office,不依赖任何多余环境,甚至不依赖编程语言
导出excel的一种思路,本机不用安装office或者wps,因为它是文本级别的操作,如果excel可以跨平台,这种实现方式可以应用到随便任何一种平台上。只要电子表格支持html格式,它就能用。
2023-07-10 15:35:34 4210 3
原创 Qt creator中操作QAction加入QToolBar
网上搜出来都是说如何new,如何addWidget,addAction之类,这不是我想要的。下面都是在creator中说明,不需要写代码,纯可视化实现。
2023-03-04 16:02:07 3001 1
原创 【Qt线程-5】生产者&消费者模型应用(多态,子线程控制,协同,事件循环)
主窗体作为主界面和中转仓库。可以直观看到仓库存量和中转计数,可以清空仓库和计数,可以调整仓库容量,可以新建/销毁各单位,可以看到各单位列表。生产者和消费者,每个单位都是独立的个体,都有各自独立的窗体。可以启动/停止工作,可以设置缓存大小,可以设置工作延时(工作速度),可以看到缓存流动情况和计数。
2023-02-21 16:01:47 2477 20
原创 【Qt样式(qss)-3】几套配色方案
具体颜色的值,有很多方式可以获得,比如随便打开个画图的选色对话框,就可以知道颜色值。值越小越暗,越大越亮。如果在其他地方看到喜欢的颜色,还可以用带吸管的工具来拾取颜色,比如photoshop。
2023-01-05 09:22:16 3035 1
原创 【qt信号槽-3】(QObject::connect: No such slot)的一种解决方法,connect函数qt4/qt5格式,元数据注册
自认为已经注意了相关事宜。但还是运行报错QObject::connect: No such slot。
2023-01-04 17:22:08 2314
原创 【Qt样式(qss)-2】使用小结(软件换肤,比如暗黑模式)
Qt style sheet(qss)跟前端技术一样,就是为了美化界面。我已经用qss实现了换肤机制。解决了一些问题:如样式导致按钮自适应文本,QTabWidget的白边框,表格,菜单等。
2022-12-28 15:06:19 2406 1
原创 【Qt线程-4】事件循环嵌套,BlockingQueuedConnection与QWaitCondition比较
父线程控制子线程终止工作时,保证时序很重要。使用阻塞队列、条件变量、回复信号等方式都可以实现,但又分别适合不同的场景。
2022-12-07 17:13:17 4435
原创 【Qt线程-3】使用事件循环,信号,stop变量,sleep阻塞,QWaitCondition+QMutex条件变量,退出子线程工作
主线程终结子线程工作时,采用的几种方式对比。各有利弊,分别适用不同的场景。
2022-10-08 14:24:01 4723 1
原创 Qt的环境变量处理与程序发布之间的关系
由上面的bat文件可以看出,qt每次启动应该是执行这个批处理的,用于构建临时的环境变量。不过我没有尝试,有兴趣可以改一下这个文件,再启动qt看看效果。因此,这就说明了一些问题:为什么windeployqt不能在随便一个cmd中执行?因为它需要这个批处理初始化环境。
2022-08-24 11:25:01 1378
原创 Qt制作dll(带ui)并调用,兼容32位和64位
qt制作dll,调用dll,界面做成dll,兼容32位和64位,解决版本交叉问题。有完整的.pro文件源码和详细文件目录组成结构。
2022-08-20 16:17:53 6257
原创 【QT表格-2】QTableWidget单元格结束编辑操作endEditting
qt默认的方式,编辑单元格后,移动焦点结束编辑状态,编辑的内容才更新到单元格。这一点我很不爽。
2022-08-19 16:42:18 3206
原创 【qt信号槽-2】Qt中窗体继承,槽响应多次执行的解决
按上面方法继承窗体后,控件的槽会响应两次。因为制作父窗体的时候,已经画了界面,实现并绑定了控件的槽函数。子窗体再new的时候又绑定一遍。
2022-08-08 15:11:46 868 5
原创 【Qt线程-2】事件循环(QCoreApplication::processEvents,exec)的应用
通过实际项目,实现事件循环的合理使用。子线程的while循环中,QCoreApplication::processEvents()的合理位置和容易引发的问题。
2022-08-08 14:49:47 13139 4
原创 【qt信号槽-1】槽函数重写问题,qt_metacall和qt_static_metacall
所以我能否这样理解?qt的槽机制中,为重写槽函数提供了更智能的方法,不用程序员再显式调用父类槽函数。
2022-07-09 13:08:33 5569
原创 简洁明了,十行代码,从使用角度理解c++非虚函数、虚函数、纯虚函数、重写、多态
用qt实验,新建一个最简单的qt工程,只要一个main.cpp的那种。把下面代码复制过去全部覆盖,运行即可。注释完整,直接说明非虚函数、虚函数、纯虚函数的应用特性。
2022-07-09 10:29:33 1074
CheckSum_Gen.rar
2021-12-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人