- 博客(124)
- 收藏
- 关注
原创 Qt5.9.9 (msvc2015_64) + OpenCV4.5.1 +CMake 版本:CMake 3.20.6 完整环境搭建教程
D:\Program Files\opencv\opencv-4.5.1\CMakeDownloadLog.txt找到下载的三个库(最多),下载成功后将库拷贝至D:\Program Files\opencv\sources\.cache\ffmpeg。,全部头文件实现,无需编译、无 dll / 库文件,只需要引入头文件就能用。核心功能:矩阵、向量、特征值、最小二乘、线性方程组、几何变换、矩阵分解等数值计算。转换逻辑存在漏洞,或是图片缩放 / 渲染异常,Mat 读取成功但转 QImage 后无有效像素。
2026-06-24 04:46:59
173
原创 DDS vs RabbitMQ 完整对比(核心差异、架构、场景、性能)
做实时设备状态同步、机器人、车载控制、高频传感器采集、嵌入式局域网→ 选 DDS;做互联网业务异步事件、订单流程、任务队列、需要消息持久化 / 事后重放、跨云微服务解耦→ 选 RabbitMQ。
2026-06-23 10:12:47
63
原创 qt不实现paintEvent而是主动调用QPainter会绘制吗?(引入绘制效率的提升)6问
表格绘图方式适用场景是否需要 paintEvent是否手动 QPainterpaintEvent 内部 QPainter自定义小控件、简单绘图✅ 必须✅ 局部创建QPixmap/QImage 离屏缓存复杂高频绘图,防止重复计算✅ 仅贴图✅ 绘制到缓存多图元、拖拽编辑器、矢量画布❌ Item 自带 paint ()图元内按需创建3D、高性能实时渲染❌ 重写 paintGL❌ OpenGL 原生 APIQt Charts折线 / 柱状 / 饼图表❌ 组件自动渲染❌。
2026-06-23 06:56:58
34
原创 Qt 5.12.10 GCC64 + GTest 完整编译运行示例
需要自己手写 main 函数管理 QCoreApplication 生命周期。如果你的测试代码用到。
2026-06-23 05:56:30
97
原创 Qt 多线程:同步、异步完整区分 + 使用场景 + 代码示例
同步调用函数后,调用线程原地卡住,必须等任务全部执行完,代码才继续向下走;界面会卡死。异步调用函数后,立刻返回,不阻塞当前线程;任务在后台独立执行,完成后通过信号 / 回调通知。
2026-06-23 04:46:48
97
原创 QThreadPool + 多类 QRunnable 任务 + 共享数据加锁完整示例需求说明
cpp运行// 任务1:数字累加任务Q_OBJECTpublic:signals:protected:private:int m_num;
2026-06-23 04:43:41
128
原创 Qt 全部安全跨线程取值方案汇总(共 6 大类,不含不安全直接调用对象成员函数)
不把数据存在子线程 Work 对象内部,单独封装缓存类,内置互斥锁;主线程、子线程持有同一个缓存指针,直接调用读写接口,不受 QObject 线程依附限制。,子线程持续生产数据入队,主线程通过 QTimer 非阻塞轮询取出,适合连续多组数据(日志、图像帧、采样数据流)。常驻后台采集、设备通信,需要频繁手动查询状态,不想用 invokeMethod。图片批量处理、文件解析、单次数学运算,执行完即销毁,不需要持续后台运行。,通过框架 API 跨线程投递调用消息,使用。,参数拷贝到主线程事件队列,天然线程安全,
2026-06-23 04:39:34
216
原创 QTreeView 与 QTreeWidget 完整区别对比(复习)
QTreeWidget = QTreeView + 封装好的内置 Model,简单省事但扩展性、性能差;QTreeView = 纯显示外壳,必须搭配 Model 使用,开发繁琐但性能强、高度可定制,是工业级项目标准选择。
2026-06-22 21:43:22
147
原创 整套聊天程序完整功能分层讲解
cpp运行// 注册自定义MsgData结构体,老式SIGNAL/SLOT传递结构体不会失效// 弹窗输入登录用户名QString userName = QInputDialog::getText(nullptr,"登录","请输入你的用户名:");// 用户名为空直接退出程序// 创建主窗口并显示w.show();
2026-06-21 21:28:41
181
原创 自定义电池样式进度条(联动 QSlider)
cpp运行Q_OBJECTpublic:// 设置进度 0~100protected:// 核心绘制函数private:// 默认进度20(对应图中红色高度)// 电池外框粗细// 电池负极凸起宽度// 电池负极凸起高度。
2026-06-20 04:56:02
117
原创 QVariant 完整详细介绍
QVariant是 Qt 提供的通用数据容器,可以存放任意单一类型的数据,相当于 Qt 版的 “万能变量”。C++ 原生没有统一的通用类型(int、double、QString、QWidget*、QDate 不能用同一个容器装),QVariant解决了类型统一存储、传递的问题。配合注册后,可存入 QVariant。Item 存储自定义数据标准接口:cpp运行// QTableWidgetItem 存数据// 存入自定义数字// 取出// GraphicsView 图元附加数据同理。
2026-06-20 04:40:52
165
原创 Qt (高仿Visio)流程图组件开发
软件名称 MXYFlowChart主要用来存放全局的一些结构体、枚举、宏定义。Qt (高仿Visio)流程图组件开发(一) 效果展示及基本开发框架构思_qt 流程图-CSDN博客。
2026-06-20 04:03:13
155
原创 Qt Graphics View 完整框架详解
继承:返回图元边界矩形(用于刷新、碰撞):绘图逻辑,内部使用QPainter绘制图形示例极简自定义 Item:cpp运行public:// 图元整体范围painter->drawText(10,50,"自定义图元");setScale()setPos(),单个图元旋转缩放,不影响其他元素鼠标交互:重写实现拖拽、点击,值越大越顶层,覆盖下层图元判断两个图元重叠。
2026-06-20 03:52:40
225
原创 QObject::sender () 完整详解
槽接收 int id,直接判断来源。核心作用:多控件复用同一个槽时,识别哪个控件触发了信号;使用范围:仅槽函数内有效;标准流程sender()获取 QObject 指针 →安全转换类型 → 判断非空后操作;慎用场景:跨线程信号、异步队列信号,优先用传参 / Lambda 替代;优缺点优点:少写大量重复槽函数,简化代码;缺点:需要类型转换、跨线程不安全、可读性弱于 Lambda 捕获。
2026-06-20 00:49:08
221
原创 小段QGraphicsView代码引入递归,超详细完整讲解(从概念、组成、执行流程、栈、优缺点、场景全覆盖)
递归(Recursion):一个函数,在函数内部调用自身,用来把复杂大问题拆解成结构完全相同、规模更小的子问题,直到分解到最简单可直接求解的最小问题,再反向合并结果。自相似:子问题和原问题结构一模一样,只是规模更小;分解思想:大事化小,小事解决后反向合并;栈驱动:底层依靠程序调用栈保存每层状态,递推压栈、回溯弹栈;两个底线:必须有终止出口、每次递归必须缩小问题。
2026-06-19 14:42:56
240
原创 Qt 操作 Word 文档解决方案
(本人觉得官方提供的个人版demo可参考性太差,其中wps模块示例没图片的插入,demo可参考的接口太少了,个人版wps的sdk仅供了解,企业的是不是要钱呢?哈哈哈)其他的使用第三方库方案请参考我的其他文章(推荐安装docxcpp 库,已验证很好使)
2026-06-17 08:16:12
297
原创 Qt 中实现跨平台(Windows 与银河麒麟 Linux)操作 Word文档
这类库体积小、依赖少、集成成本低,完全满足绝大多数桌面 / 嵌入式 Qt 项目的 Word 文档生成 / 基础读写需求。表格库名称开源协议C++ 版本要求核心依赖Qt 适配性核心功能上限读写支持性能学习成本核心优缺点tinydocx(C++ 版)MITC++11 及以上纯头文件,零外部依赖★★★★★ 极佳基础文本格式、段落、标题、表格、图片嵌入、超链接、对齐排版仅支持生成,不支持读取 / 修改★★★★★ 极致★★☆☆☆ 极低。
2026-06-17 05:54:15
483
原创 GIS 矢量数据格式
二维矢量的核心诉求是“精确表达空间位置与属性关系”,因此衍生出了 Shapefile、GeoJSON 以及支持复杂拓扑的 Geodatabase。三维矢量的核心诉求是“海量数据的流畅渲染与真实场景还原”,因此诞生了 3D Tiles、CZML、OSGB 等针对图形渲染和流式加载深度优化的格式。
2026-06-15 21:56:26
47
原创 Linux 达梦数据库(DM8)超详细全流程手册(生产级 / 嵌入式 / GIS 开发专属)
本文基于,针对你的场景做全维度深度细化,覆盖「」全链路,每个步骤都包含,所有命令可直接复制落地,新手零门槛,老手可直接用于生产环境。
2026-06-15 18:23:00
67
原创 Linux 网络接口配置命令完整使用指南
结合你之前的Linux 嵌入式、bonding 网卡绑定、Qt/GIS 开发场景,我给你整理了优先级最高的工具选型,避免学习冗余内容:表格场景首选工具备选工具日常临时配置 IP / 激活接口、快速调试ip addrip linkifconfig(老系统兼容)生产环境 / 服务器 / 嵌入式设备永久网络配置nmclinmtui手动修改系统配置文件网卡硬件调优、网络故障排查ethtoolmii-tool跨网段访问、路由配置ip routeroute命令网络连通性、故障排查ping。
2026-06-15 18:02:42
188
原创 MSVC(Windows) 和 GCC(MinGW/Linux)
表格对比项MSVC主平台Windows全平台调度工具make编译器cl.exeg++链接器link.exeld目标文件.obj.o静态库.lib.a动态库资源工具rc.exe运行库依赖 VC++ CRT一般不依赖 VC++调试符号.pdb内嵌 / 外部符号文件典型报错LNK2019跨平台弱强Windows 原生兼容极强良好同一套 GCC 编译器,有两种不同的平台版本在Windows 上,叫MinGW(带.exe。
2026-06-15 16:51:55
173
原创 Qt 5.9.9 + MSVC2015 64bit + qmake 超详细全流程手册
Q_OBJECT必须放在头文件类内,否则 moc 失效,必报 LNK2019;修改.pro.ui.qrc必须重跑 qmake;MSVC+Qt 固定使用动态 CRT (/MD/MDd),严禁改为静态 CRT;缺少→ 程序闪退,部署必须用 windeployqt;Debug 调试依赖.pdb文件,无符号无法定位崩溃;jom 多线程编译,速度远快于原生 nmake;影子构建隔离源码与中间文件,是 Qt 工程标准规范;moc/uic/rcc 是预处理,和 MSVC 编译器相互独立。
2026-06-15 15:53:55
179
原创 Qt 绘制效率优化(分场景 + 实操方案,Linux/Windows 通用)
最高优先级:缩小重绘区域 + 节流 update () + Release 编译次优先级:离屏双缓冲、缓存画笔 / 字体 / 图片、裁剪绘制复杂图形:改用 QGraphicsView + OpenGL 视口,或直接迁移 Qt Quick海量曲线 / 点:批量绘制 + 数据降采样,放弃逐点绘制避坑:少用复杂 QSS、不在 paintEvent 做业务计算、不用无参 update ()
2026-06-15 15:09:01
275
原创 Qt Graphs 2D+3D介绍
Qt Graphs 是 Qt 6.8+ 推出的,合并了旧的 QtCharts(2D)与 QtDataVisualization(3D),底层基于,主打Qt。
2026-06-15 06:49:56
364
原创 数字图像处理(11): 图像平滑 (均值滤波、中值滤波和高斯滤波)
中值滤波算法以某像素的领域图像区域中的像素值的排序为基础,将像素领域内灰度的中值代替该像素的值[1];如:以3*3的领域为例求中值滤波中像素5的值。中值滤波对处理椒盐噪声非常有效。
2026-06-15 05:53:51
232
原创 Dijkstra 迪杰斯特拉算法 完整详解
求解单源到全节点最短路径,结果全局最优。逻辑清晰、稳定性强,广泛用于路网、GIS 成本距离、导航、管网分析。基于优先队列实现后,时间效率优秀。
2026-06-15 05:42:33
381
原创 软件体系结构风格与软件体系结构
(高校 / 软考 / 教材通用版),完整划分并归类,附核心说明、典型代表、特点,同时区分大类与细分,方便记忆备考。,分经典基础架构、分布式架构、特殊架构三大类,附核心特点、典型场景,简洁好记。,共 12 种经典架构风格,额外补充常用衍生 / 现代风格。,传统程序、业务系统主力风格。,多用于网络 / 分布式场景。,组件为数据加工单元。
2026-06-12 17:05:56
297
原创 随笔(杂项)由绘制引入设计模式的思考
首先,抽象出所有支持的绘图类型,避免使用硬编码的字符串或魔法数字。2 None, // 浏览/无操作模式3 Point, // 绘制点4 Polyline, // 绘制线5 Polygon // 绘制面6};31011// 绘图类型枚举 (兼容 Qt4/C++98)13 Type_None = 0, // 浏览模式14 Type_Point, // 绘制点15 Type_Polyline, // 绘制线16 Type_Polygon // 绘制面17};1820{
2026-06-10 00:34:11
175
原创 http最容易踩的 5 大死穴
目录客户端服务器端【Qt 做高频网络通信】最容易踩的 5 大死穴!1. 解决了:单线程一忙就卡死、界面不动以前的坑:你的代码怎么解决:2. 解决了:高频发送 → 丢包、解析失败以前的坑:你的代码怎么解决:3. 解决了:HTTP 协议不会拆包以前的坑:你的代码怎么解决:4. 解决了:客户端高频请求 → 崩溃、卡死以前的坑:你的代码怎么解决:5. 解决了:多客户端同时连接 → 服务端炸掉以前的坑:你的代码怎么解决:最终超级大白话(你只记这个)这套代码解决了 3 个核心问题:一句话总结:** 这是一套能直接用在工
2026-06-09 23:50:00
256
原创 Qt 大型项目团队分工 + Q_DECL_IMPORT/Q_DECL_EXPORT 全套规范
plaintext2、人员职责拆分(解耦并行开发、互不冲突)表格qmake二、Q_DECL_IMPORT / Q_DECL_EXPORT 原理 & 标准写法(动态库跨平台导出核心)1、宏本质 :编译当前动态库项目时,类 / 函数导出(WIN=,Linux 空)Qt :别的项目引用该库时,类 / 函数导入(WIN=,Linux 空)2、标准模板:每个动态库必建 (固定格式,复制即用)以模块举例:cpp运行3、动态库 pro 配置(生成 dll/so,关键:)
2026-06-08 16:00:49
162
原创 Qt 企业级模块化框架设计说明书
本框架为工业级 Qt 模块化架构,采用多 DLL 动态库拆分模式,实现界面、通信、数据、业务完全解耦。框架基于 WebSocket 实现高并发数据收发,满足高频数据采集、实时监控场景需求,同时支持多人团队并行开发、独立编译与版本迭代。本框架是一套标准企业级 Qt 分层模块化架构,基于 DLL 拆分、MVC、事件总线、生产者 - 消费者等经典架构思想打造,完全适配工业上位机、物联网监控、高频通信类项目。框架具备低耦合、高内聚、高并发、易扩展、易维护。
2026-06-08 15:37:13
271
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅