qt/c++
文章平均质量分 83
个人学习和使用记录。
_顾全大橘
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【qml-5.1】qml与c++交互(QML_ELEMENT/QML_SINGLETON)
各位说这事简单不?按理说确实挺现代的,非常简练。但是我不爽啊,qml里那个报错,试过很多次了,只能重启creator,还不保证一定能行。等于非要自己记着没错才可以。反正目前我没试出好办法,AI也胡说八道,没个正经法。最后逼急了它说等着qt升级完善。总之别忘了咱的原则:最小污染,最小侵入,简洁简练稳定。各位老少爷们,有好办法说一声。原创 2026-04-17 16:09:41 · 407 阅读 · 0 评论 -
【qml-12】Quick3D实现机器人鼠标拖拽转换视角(无限角度)与滚轮缩放
本文介绍了在机器人示教器项目中,使用MouseArea替换WasdController实现更灵活的3D视角控制。通过鼠标拖拽可实现物体任意角度旋转(左右拖拽控制水平旋转,上下拖拽控制垂直旋转),滚轮控制物体缩放大小,并提供一键重置功能。文中详细说明了关键代码实现,包括MouseArea的事件处理、角度计算和数值限制逻辑,以及如何与外部UI控件进行交互。相比WasdController的固定视角控制,新方案更适合需要自由视角观察的示教场景,同时避免了循环绑定等问题。最终实现了直观的3D物体任意角度观察体验。原创 2025-09-28 14:59:10 · 1151 阅读 · 0 评论 -
【qml-11】Quick3D实现机器人欧拉旋转、拖动视角
本文记录了使用Quick3D实现晶圆机器人示教器时遇到的3D旋转问题及解决方案。重点包括:1)坐标轴定义和右手定则的应用;2)欧拉旋转的顺序问题(验证得出yxz顺序);3)节点分层控制的局限性;4)通过WasdController实现视角控制及其方向调整技巧。原创 2025-09-27 20:54:19 · 1035 阅读 · 1 评论 -
【qml-10】Quick3D实现机器人渲染(mesh)记录
本文介绍了使用Qt Quick 3D开发机器人示教器的过程。项目从3D基础概念入手,利用Balsam工具将工业模型转换为mesh格式。采用模块化设计思路,将机器人各部件封装为独立Model,通过Node树结构组织层级关系,并实现参数化控制。文中提供了完整的QML代码示例,展示了如何通过滑块控件调整机器人姿态、视角等参数。作者比较了两种技术方案,最终选择基于Qt Quick 3D的实现方式,为类似3D展示项目提供了实用参考。原创 2025-09-25 21:49:56 · 1297 阅读 · 0 评论 -
【qml-9】ComboBox笔记
Combobox的关键数据无非就是index,value,text。使用时要能自由转换,亦即通过任何一个值能准确获得其它任意一个。原创 2025-09-10 11:26:21 · 273 阅读 · 0 评论 -
【qml-8】作用域穿透
原本按照qt-widget的思路,一切都是以c++为基础,相信很多朋友脑海中都是“安全”和“规矩”。但是偶然间发现qml中这种“穿透”现象,确实好用,还是理念跟widget不一样了。父级qml中的成员,可以直接穿透到子孙级qml,从而被子孙qml直接访问。原创 2025-09-03 11:52:20 · 996 阅读 · 0 评论 -
【qml-7】qml与c++交互(自动补全提示)
我的初衷是,要心情愉悦地写qml,就一定要解决自动补全提示的问题,每次在类型名后面打点必须给出提示。网上搜了一堆,一个比一个麻烦,我就是要简洁,不修改cmake,不用qmldir和目录,除了简单加极少代码其它一概不用,只改涉及一处,好维护好理解。原创 2025-08-28 14:22:50 · 490 阅读 · 0 评论 -
【qml-6】弹窗总结与建议
qml的弹窗有很多种,最主要的是改变传统的理念。原创 2025-08-25 16:41:31 · 942 阅读 · 0 评论 -
QObject对象树和delete是这样防止内存泄漏的
如果Parent的析构函数中显式delete了Child时,child会移出子对象列表,之后检查时会略过。如果Parent的析构函数中不写delete了Child时,随后处理children时会自动处理。原创 2025-08-23 09:51:04 · 786 阅读 · 0 评论 -
【qml-5】qml与c++交互(类型单例)
如果咱们是熟悉qt的程序员,c++部分不需要特别注意,只要Q_INVOKABLE、槽、信号就行,亦即qml的工作原理。但之前提到,“类型多例”会在qml中实例化多次,所以就有了本次单例的做法。原创 2025-08-19 11:07:08 · 489 阅读 · 0 评论 -
【qml-4】qml与c++交互(类型多例)
之前提到的实例方式,是在c++中实例化再注入qml,手册中是不推荐这么做的。而之前提到的类型方式,用起来也不是我想要的“简洁”效果,实际项目中我用了一种自认为比较方便的用法,记录下来。就三步,不需要改qmakelists.txt,不需要涉及路径,我认为已经非常简练。原创 2025-08-19 10:35:11 · 496 阅读 · 0 评论 -
【qml-3】qml与c++交互第二次尝试(类型注册)
本次记录的是类型方式,亦即把c++里写好的类,不实例化,而是把类型注册给qml,就像它自己的Button、Item一样,用的时候使用“{}”给它实例化。这么说起来好像更合适一些。原创 2025-07-21 22:49:28 · 1218 阅读 · 0 评论 -
QLabel显示图像性能低,影响QChart效果,动态仪表的优化
测试中发现,仪表和故障灯动态更新时,图表中的曲线闪烁严重。最终使用画笔重做了故障灯,完美解决,很多朋友还用画笔模拟动画,性能也不错。原创 2024-09-25 21:45:39 · 1283 阅读 · 0 评论 -
Qt报错undefined reference to的一个愚蠢原因——添加文件
当把源代码复制到项目中时,因为通常都有设置依赖路径,所以忘了添加到项目也能找到头文件(容易麻痹),但是不能找到源文件,这是出错的根本原因。原创 2024-09-24 10:19:03 · 445 阅读 · 0 评论 -
【qt信号槽-6】槽函数不执行的一种原因——未知线程
为什么发出信号没问题,只有槽函数出问题呢?因为发信号是通知别人,而槽函数是基于事件循环的响应,本质上是对消息队列的处理。而所谓线程,最重要的就是消息队列的附加。这点看qt源码可以得到证实。诡异的子线程,有可能导致槽函数失灵。原创 2024-09-13 11:40:01 · 1568 阅读 · 0 评论 -
Qt绘制动态仪表(模仿汽车仪表指针、故障灯)
我在界面上放置了滑动条,实际操作时,可以改变滑块位置,直接看到仪表动作。还可以增加故障灯。原创 2024-09-10 09:11:04 · 2354 阅读 · 0 评论 -
QtChart做个动态更新的曲线
qt需要把图表chart画在画布chartview上,所以界面上得先有个chartview,就是个widget的提升。新建一个chart对象,添加到chartview上。新建点集对象series,添加到chart。新建坐标轴对象,把series锚定到坐标轴。原创 2024-09-06 13:43:47 · 2330 阅读 · 0 评论 -
【Qt线程-7】QThread、QThreadPool+QRunnable怎么选
我觉得如果不是特别强调性能的业务,还是使用QThread+moveTothread方式,能规避好多零碎的问题,并充分利用qt的设计特性。至于开销,可以自己手动控制线程的创建和销毁。比如预知线程的数量,减少创建和销毁次数。原创 2024-05-24 11:47:15 · 617 阅读 · 0 评论 -
Qt源码调试步骤记录
其实,继续跟踪qt的事件循环处理,会发现它最终本质就是手册里说的那样,其实是消息队列处理。再往深的说线程和movetothread,本质上还是基于消息队列。原创 2024-03-27 15:47:42 · 2284 阅读 · 0 评论 -
Qt访问odbc(access)遇到的问题
windows中的odbc中,预制了很多基础的数据库驱动,这在2000年上大学时,做项目就研究过。所谓驱动,无非就是一些dll,和注册表键值指向。如果要自己做个安装程序去部署客户机,对照本机开发环境,去设置注册表和复制dll即可。亲测没问题,这就是windows的机制。原创 2024-03-21 11:26:22 · 1006 阅读 · 0 评论 -
【qml-2】尝试一个有模式的qml弹窗
学习qml,本次想尝试一个弹窗。之前按照网上的代码模仿了一下,没卵用,它并不是真正的有模式,鼠标点一下旁边区域,它就消失了,而且界面难看至极。也许是之前没玩过qml,可能是哪里操作不对了,所以还是尝试自己做一个。原创 2024-01-17 10:50:32 · 1373 阅读 · 0 评论 -
【Qt-license】误操作qt下载导致只能安装商业版试用十天,无法安装社区版
下载qt时,如果误选了商业试用,官方会生成试用授权,安装程序就无法执行免费社区版安装。原创 2024-01-17 10:11:57 · 14565 阅读 · 11 评论 -
【qml-1】qml与c++交互第一次尝试(实例注入)
既然是前后端分离设计,就尽量遵循松散耦合的初衷。后端c++用于写逻辑,就像写库一样,考虑好用途和接口,只要调试通过,就不用管了。只需要把qml当做使用者,去调用c++即可。原创 2024-01-10 16:32:10 · 1574 阅读 · 0 评论 -
QMessageBox自定义按钮文本中文显示,按钮个数等
对话框可以随便定制按钮,甚至比qt预定义的枚举更灵活。原创 2023-12-25 17:02:30 · 3130 阅读 · 1 评论 -
【QT表格-6】QTableWidget的currentCellChanged实现中途撤销
根据用户的选择,确定QTableWidget::currentCellChanged信号的槽是否继续。原创 2023-12-20 16:59:39 · 2397 阅读 · 0 评论 -
Qt处理焦点事件(获得焦点,失去焦点)
然后直接运行看效果,始终是这个文本框获得焦点,无论鼠标点击别处,或者tab键切换焦点。原创 2023-12-11 11:51:07 · 3858 阅读 · 0 评论 -
【qt信号槽-4】槽函数不响应不执行的一种原因:ui提升导致重名
槽函数不执行,不仅仅是常说的connect或者元数据注册问题。毕竟qt按照名字on_XXX_signal匹配信号槽的做法,跟connect还是有区别,这个感兴趣可以分析源码。原创 2023-12-09 11:50:56 · 1888 阅读 · 0 评论 -
【QT表格-5】QTableView用代码设置选中状态
按照网上普遍的说法,只要搜这个话题,基本都是setCurrentItem,这个确实可以,但如果要选中多个呢?原创 2023-12-05 16:30:33 · 2613 阅读 · 0 评论 -
QStandardItemModel,setData和setItem区别
setItem是自动的,随心所欲,setData是依赖model行和列的数量的,如果setData成功,会创建和更新相应的item,返回true。否则返回false,一切无效,但不报错。这也是特别要注意的。如果不小心使用了它,没有判断返回值,一旦出错,一时很难定位。原创 2023-11-02 08:58:04 · 1870 阅读 · 1 评论 -
【QT表格-4】由QTableView/QTableWidget显示进度条和按钮,理解qt代理delegate用法
我认为还是始终贯彻MVC模式的应用,比如一个view绑定了一个model,则model的数据是和view同步的。主要是继承QStyledItemDelegate之后,重写那几个函数的意义。原创 2023-11-01 10:24:59 · 4208 阅读 · 13 评论 -
【Qt样式(qss)-5】qss局部渲染混乱,错乱,不生效的一种原因
一旦局部组件被显式地单独渲染,就会启用局部优先规则。一旦启用局部有限规则,全局渲染时就会绕开已经被渲染的局部组件。但其实,我觉得更好的方式是:它应该去只绕开显式局部渲染的组件,而不是有渲染就绕开。原创 2023-10-25 09:50:16 · 1423 阅读 · 0 评论 -
【Qt线程-6】获取当前线程id,thread()和currentThreadId(),不是想当然那样,不使用信号槽可能看不出区别
QThread *thd = new QThread仅仅是构造了一个指针对象,它代表不了真正意义上的线程。它的生存线程依然是父线程。原创 2023-08-17 10:47:08 · 8673 阅读 · 0 评论 -
【QT表格-3】QTableWidget导入/导出excel通用代码,不需要安装office,不依赖任何多余环境,甚至不依赖编程语言
导出excel的一种思路,本机不用安装office或者wps,因为它是文本级别的操作,如果excel可以跨平台,这种实现方式可以应用到随便任何一种平台上。只要电子表格支持html格式,它就能用。原创 2023-07-10 15:35:34 · 5491 阅读 · 3 评论 -
Qt creator中操作QAction加入QToolBar
网上搜出来都是说如何new,如何addWidget,addAction之类,这不是我想要的。下面都是在creator中说明,不需要写代码,纯可视化实现。原创 2023-03-04 16:02:07 · 3553 阅读 · 1 评论 -
【Qt线程-5】生产者&消费者模型应用(多态,子线程控制,协同,事件循环)
主窗体作为主界面和中转仓库。可以直观看到仓库存量和中转计数,可以清空仓库和计数,可以调整仓库容量,可以新建/销毁各单位,可以看到各单位列表。生产者和消费者,每个单位都是独立的个体,都有各自独立的窗体。可以启动/停止工作,可以设置缓存大小,可以设置工作延时(工作速度),可以看到缓存流动情况和计数。原创 2023-02-21 16:01:47 · 3373 阅读 · 34 评论 -
【Qt样式(qss)-4】应用到QMdiArea不生效的解决
使用qss设置QMdiArea样式不生效,可以试试这种方法。原创 2023-01-16 10:14:27 · 1259 阅读 · 0 评论 -
【Qt样式(qss)-3】几套配色方案
具体颜色的值,有很多方式可以获得,比如随便打开个画图的选色对话框,就可以知道颜色值。值越小越暗,越大越亮。如果在其他地方看到喜欢的颜色,还可以用带吸管的工具来拾取颜色,比如photoshop。原创 2023-01-05 09:22:16 · 4067 阅读 · 1 评论 -
【qt信号槽-3】(QObject::connect: No such slot)的一种解决方法,connect函数qt4/qt5格式,元数据注册
自认为已经注意了相关事宜。但还是运行报错QObject::connect: No such slot。原创 2023-01-04 17:22:08 · 2531 阅读 · 0 评论 -
【Qt样式(qss)-2】使用小结(软件换肤,比如暗黑模式)
Qt style sheet(qss)跟前端技术一样,就是为了美化界面。我已经用qss实现了换肤机制。解决了一些问题:如样式导致按钮自适应文本,QTabWidget的白边框,表格,菜单等。原创 2022-12-28 15:06:19 · 2775 阅读 · 1 评论 -
【Qt线程-4】事件循环嵌套,BlockingQueuedConnection与QWaitCondition、QThread::wait()比较
父线程控制子线程终止工作时,保证时序很重要。使用阻塞队列、条件变量、回复信号等方式都可以实现,但又分别适合不同的场景。原创 2022-12-07 17:13:17 · 5176 阅读 · 0 评论
分享