- 博客(84)
- 资源 (2)
- 收藏
- 关注
原创 【qml-12】Quick3D实现机器人鼠标拖拽转换视角(无限角度)与滚轮缩放
本文介绍了在机器人示教器项目中,使用MouseArea替换WasdController实现更灵活的3D视角控制。通过鼠标拖拽可实现物体任意角度旋转(左右拖拽控制水平旋转,上下拖拽控制垂直旋转),滚轮控制物体缩放大小,并提供一键重置功能。文中详细说明了关键代码实现,包括MouseArea的事件处理、角度计算和数值限制逻辑,以及如何与外部UI控件进行交互。相比WasdController的固定视角控制,新方案更适合需要自由视角观察的示教场景,同时避免了循环绑定等问题。最终实现了直观的3D物体任意角度观察体验。
2025-09-28 14:59:10
1092
原创 【qml-11】Quick3D实现机器人欧拉旋转、拖动视角
本文记录了使用Quick3D实现晶圆机器人示教器时遇到的3D旋转问题及解决方案。重点包括:1)坐标轴定义和右手定则的应用;2)欧拉旋转的顺序问题(验证得出yxz顺序);3)节点分层控制的局限性;4)通过WasdController实现视角控制及其方向调整技巧。
2025-09-27 20:54:19
963
2
原创 【qml-10】Quick3D实现机器人渲染(mesh)记录
本文介绍了使用Qt Quick 3D开发机器人示教器的过程。项目从3D基础概念入手,利用Balsam工具将工业模型转换为mesh格式。采用模块化设计思路,将机器人各部件封装为独立Model,通过Node树结构组织层级关系,并实现参数化控制。文中提供了完整的QML代码示例,展示了如何通过滑块控件调整机器人姿态、视角等参数。作者比较了两种技术方案,最终选择基于Qt Quick 3D的实现方式,为类似3D展示项目提供了实用参考。
2025-09-25 21:49:56
1242
原创 【qml-9】ComboBox笔记
Combobox的关键数据无非就是index,value,text。使用时要能自由转换,亦即通过任何一个值能准确获得其它任意一个。
2025-09-10 11:26:21
256
原创 【qml-8】作用域穿透
原本按照qt-widget的思路,一切都是以c++为基础,相信很多朋友脑海中都是“安全”和“规矩”。但是偶然间发现qml中这种“穿透”现象,确实好用,还是理念跟widget不一样了。父级qml中的成员,可以直接穿透到子孙级qml,从而被子孙qml直接访问。
2025-09-03 11:52:20
968
原创 【qml-7】qml与c++交互(自动补全提示)
我的初衷是,要心情愉悦地写qml,就一定要解决自动补全提示的问题,每次在类型名后面打点必须给出提示。网上搜了一堆,一个比一个麻烦,我就是要简洁,不修改cmake,不用qmldir和目录,除了简单加极少代码其它一概不用,只改涉及一处,好维护好理解。
2025-08-28 14:22:50
463
原创 QObject对象树和delete是这样防止内存泄漏的
如果Parent的析构函数中显式delete了Child时,child会移出子对象列表,之后检查时会略过。如果Parent的析构函数中不写delete了Child时,随后处理children时会自动处理。
2025-08-23 09:51:04
764
原创 【qml-5】qml与c++交互(类型单例)
如果咱们是熟悉qt的程序员,c++部分不需要特别注意,只要Q_INVOKABLE、槽、信号就行,亦即qml的工作原理。但之前提到,“类型多例”会在qml中实例化多次,所以就有了本次单例的做法。
2025-08-19 11:07:08
463
原创 【qml-4】qml与c++交互(类型多例)
之前提到的实例方式,是在c++中实例化再注入qml,手册中是不推荐这么做的。而之前提到的类型方式,用起来也不是我想要的“简洁”效果,实际项目中我用了一种自认为比较方便的用法,记录下来。就三步,不需要改qmakelists.txt,不需要涉及路径,我认为已经非常简练。
2025-08-19 10:35:11
469
原创 【qml-3】qml与c++交互第二次尝试(类型注册)
本次记录的是类型方式,亦即把c++里写好的类,不实例化,而是把类型注册给qml,就像它自己的Button、Item一样,用的时候使用“{}”给它实例化。这么说起来好像更合适一些。
2025-07-21 22:49:28
1192
原创 程序员想对管理者说的话
若无感可以直接关闭。至少目前为止,我没有给人踩过。也很少见甚至就没见过哪篇被踩过。无论是什么原因,我更愿意相信我们技术人的这份热情,就是这么纯粹,没有勾心斗角。反观某招聘平台的“有了”区域,各种自我吹捧或者看不起别人,动不动就“就这还十年经验……”,真的很不好。咱们自己人还看不起自己人,就难怪被管理和人事看不起。所以真心希望大家都坚持csdn的态度,互相鼓励,互相尊重,毕竟,咱们才是一条战线的战友。
2025-04-05 08:06:59
709
原创 【lvs-2】centos8上实现lvs集群负载均衡dr模式
尝试实现lvs-dr模式负载均衡。分别尝试同网段和不同网段实现。不同网段部分原本很顺利,路由设置因为一个参数,阻碍了我很多天。
2025-04-02 16:01:14
1026
原创 【lvs-1】centos8上实现lvs集群负载均衡nat模式
具体实用性如何我不敢说,只能以学习为目的做实验,我只想以此为开端了解集群实现。这里先不涉及分布式,只实验集群调度。
2025-03-27 13:09:57
1106
原创 QLabel显示图像性能低,影响QChart效果,动态仪表的优化
测试中发现,仪表和故障灯动态更新时,图表中的曲线闪烁严重。最终使用画笔重做了故障灯,完美解决,很多朋友还用画笔模拟动画,性能也不错。
2024-09-25 21:45:39
1242
原创 Qt报错undefined reference to的一个愚蠢原因——添加文件
当把源代码复制到项目中时,因为通常都有设置依赖路径,所以忘了添加到项目也能找到头文件(容易麻痹),但是不能找到源文件,这是出错的根本原因。
2024-09-24 10:19:03
421
原创 【qt信号槽-6】槽函数不执行的一种原因——未知线程
为什么发出信号没问题,只有槽函数出问题呢?因为发信号是通知别人,而槽函数是基于事件循环的响应,本质上是对消息队列的处理。而所谓线程,最重要的就是消息队列的附加。这点看qt源码可以得到证实。诡异的子线程,有可能导致槽函数失灵。
2024-09-13 11:40:01
1544
原创 QtChart做个动态更新的曲线
qt需要把图表chart画在画布chartview上,所以界面上得先有个chartview,就是个widget的提升。新建一个chart对象,添加到chartview上。新建点集对象series,添加到chart。新建坐标轴对象,把series锚定到坐标轴。
2024-09-06 13:43:47
2221
1
原创 【Qt线程-7】QThread、QThreadPool+QRunnable怎么选
我觉得如果不是特别强调性能的业务,还是使用QThread+moveTothread方式,能规避好多零碎的问题,并充分利用qt的设计特性。至于开销,可以自己手动控制线程的创建和销毁。比如预知线程的数量,减少创建和销毁次数。
2024-05-24 11:47:15
596
原创 Qt源码调试步骤记录
其实,继续跟踪qt的事件循环处理,会发现它最终本质就是手册里说的那样,其实是消息队列处理。再往深的说线程和movetothread,本质上还是基于消息队列。
2024-03-27 15:47:42
2246
原创 Qt访问odbc(access)遇到的问题
windows中的odbc中,预制了很多基础的数据库驱动,这在2000年上大学时,做项目就研究过。所谓驱动,无非就是一些dll,和注册表键值指向。如果要自己做个安装程序去部署客户机,对照本机开发环境,去设置注册表和复制dll即可。亲测没问题,这就是windows的机制。
2024-03-21 11:26:22
981
原创 【qml-2】尝试一个有模式的qml弹窗
学习qml,本次想尝试一个弹窗。之前按照网上的代码模仿了一下,没卵用,它并不是真正的有模式,鼠标点一下旁边区域,它就消失了,而且界面难看至极。也许是之前没玩过qml,可能是哪里操作不对了,所以还是尝试自己做一个。
2024-01-17 10:50:32
1342
原创 【Qt-license】误操作qt下载导致只能安装商业版试用十天,无法安装社区版
下载qt时,如果误选了商业试用,官方会生成试用授权,安装程序就无法执行免费社区版安装。
2024-01-17 10:11:57
13820
12
原创 【qml-1】qml与c++交互第一次尝试(实例注入)
既然是前后端分离设计,就尽量遵循松散耦合的初衷。后端c++用于写逻辑,就像写库一样,考虑好用途和接口,只要调试通过,就不用管了。只需要把qml当做使用者,去调用c++即可。
2024-01-10 16:32:10
1543
原创 【QT表格-6】QTableWidget的currentCellChanged实现中途撤销
根据用户的选择,确定QTableWidget::currentCellChanged信号的槽是否继续。
2023-12-20 16:59:39
2348
原创 【qt信号槽-4】槽函数不响应不执行的一种原因:ui提升导致重名
槽函数不执行,不仅仅是常说的connect或者元数据注册问题。毕竟qt按照名字on_XXX_signal匹配信号槽的做法,跟connect还是有区别,这个感兴趣可以分析源码。
2023-12-09 11:50:56
1830
原创 【QT表格-5】QTableView用代码设置选中状态
按照网上普遍的说法,只要搜这个话题,基本都是setCurrentItem,这个确实可以,但如果要选中多个呢?
2023-12-05 16:30:33
2570
原创 QStandardItemModel,setData和setItem区别
setItem是自动的,随心所欲,setData是依赖model行和列的数量的,如果setData成功,会创建和更新相应的item,返回true。否则返回false,一切无效,但不报错。这也是特别要注意的。如果不小心使用了它,没有判断返回值,一旦出错,一时很难定位。
2023-11-02 08:58:04
1817
1
原创 【QT表格-4】由QTableView/QTableWidget显示进度条和按钮,理解qt代理delegate用法
我认为还是始终贯彻MVC模式的应用,比如一个view绑定了一个model,则model的数据是和view同步的。主要是继承QStyledItemDelegate之后,重写那几个函数的意义。
2023-11-01 10:24:59
4120
13
原创 【Qt样式(qss)-5】qss局部渲染混乱,错乱,不生效的一种原因
一旦局部组件被显式地单独渲染,就会启用局部优先规则。一旦启用局部有限规则,全局渲染时就会绕开已经被渲染的局部组件。但其实,我觉得更好的方式是:它应该去只绕开显式局部渲染的组件,而不是有渲染就绕开。
2023-10-25 09:50:16
1379
原创 【Qt线程-6】获取当前线程id,thread()和currentThreadId(),不是想当然那样,不使用信号槽可能看不出区别
QThread *thd = new QThread仅仅是构造了一个指针对象,它代表不了真正意义上的线程。它的生存线程依然是父线程。
2023-08-17 10:47:08
8516
原创 【QT表格-3】QTableWidget导入/导出excel通用代码,不需要安装office,不依赖任何多余环境,甚至不依赖编程语言
导出excel的一种思路,本机不用安装office或者wps,因为它是文本级别的操作,如果excel可以跨平台,这种实现方式可以应用到随便任何一种平台上。只要电子表格支持html格式,它就能用。
2023-07-10 15:35:34
5402
4
原创 Qt creator中操作QAction加入QToolBar
网上搜出来都是说如何new,如何addWidget,addAction之类,这不是我想要的。下面都是在creator中说明,不需要写代码,纯可视化实现。
2023-03-04 16:02:07
3496
2
原创 【Qt线程-5】生产者&消费者模型应用(多态,子线程控制,协同,事件循环)
主窗体作为主界面和中转仓库。可以直观看到仓库存量和中转计数,可以清空仓库和计数,可以调整仓库容量,可以新建/销毁各单位,可以看到各单位列表。生产者和消费者,每个单位都是独立的个体,都有各自独立的窗体。可以启动/停止工作,可以设置缓存大小,可以设置工作延时(工作速度),可以看到缓存流动情况和计数。
2023-02-21 16:01:47
3307
35
原创 【Qt样式(qss)-3】几套配色方案
具体颜色的值,有很多方式可以获得,比如随便打开个画图的选色对话框,就可以知道颜色值。值越小越暗,越大越亮。如果在其他地方看到喜欢的颜色,还可以用带吸管的工具来拾取颜色,比如photoshop。
2023-01-05 09:22:16
3994
1
CheckSum_Gen.rar
2021-12-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅