自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(104)
  • 收藏
  • 关注

原创 C++中auto&和auto&&

C++中auto&与auto&&的核心区别在于引用类型与绑定能力: auto&是左值引用,仅能绑定非临时对象,适合直接修改容器元素或避免拷贝; auto&&是万能引用,根据上下文推导为左值或右值引用,适用于泛型编程、完美转发和处理代理对象。 最佳实践: 修改原数据时优先用auto&,语义更明确; 处理未知类型或临时对象时用auto&&,但需注意右值生命周期。 避免错误场景:auto&不能绑右值,auto&&在简单场景可能降低可读性。

2025-06-09 22:46:55 659

原创 在OpenGL中,齐次坐标的第四分量w用于区分几何实体的类型(点或向量)

在OpenGL中,齐次坐标的第四分量(w)用于区分几何实体的类型(点或向量),并直接影响其在变换矩阵作用下的行为。

2025-06-09 12:44:21 205

原创 设置QDialog的setModal(true)对show()无法阻塞

Qt对话框模态阻塞失效问题分析 摘要:当使用setParent(this)设置对话框父对象时,会导致setModal(true)无法阻塞父窗口。原因在于: 窗口标志变化:setParent(QWidget*)会清除Qt::Dialog类型标识,将对话框降级为普通嵌入式部件 模态依赖窗口类型:只有当窗口保留Qt::Dialog或Qt::Window标识时,模态设置才会生效 解决方案: 使用setParent(parent, windowFlags())显式保留窗口标志 或在构造函数中直接指定父对象

2025-06-08 17:02:56 533

原创 达梦使用存储过程实现删除重复记录、判断并添加主键和自增列的逻辑

本文介绍了达梦数据库中确保主键唯一性的存储过程实现方法。该存储过程包含三个主要功能:1)删除表中重复记录确保主键唯一性;2)检查并添加主键约束;3)检查并添加自增列属性。存储过程通过动态SQL实现这些功能,并提供了详细的使用说明和注意事项。调用时只需传入表名和列名参数即可自动完成相关操作,适用于不同表的批量处理。执行前建议做好数据备份,并确保用户具有足够权限。

2025-06-08 09:30:00 216

原创 QT中子线程触发主线程弹窗并阻塞等待用户响应

实现子线程安全触发主线程弹窗并阻塞等待: 一、使用QMetaObject::invokeMethod;二、使用QTimer::singleShot

2025-06-01 15:41:17 1258

原创 QT中子线程触发主线程弹窗并阻塞等待用户响应-传统信号槽实现

QT中子线程触发主线程弹窗并阻塞等待用户响应:在子线程执行耗时任务时,需暂停并触发主线程弹窗获取用户决策,子线程需阻塞等待响应后继续执行或终止。

2025-06-01 15:22:42 507

原创 QtConcurrent run中抛出异常在QFutureWatcher传递原理

QtConcurrent::run中抛出的QException子类异常,需通过`QFuture`的result()或waitForFinished()触发传递到主线程。

2025-06-01 13:25:23 569

原创 C++ 中虚继承与非虚继承的对比分析

虚继承:专为菱形继承设计,通过共享基类实例解决数据冗余和二义性,代价是内存和性能开销。实际开发中,​优先避免过度多重继承,仅在必要时使用虚继承。

2025-05-08 12:04:17 555

原创 C++ lambda表达式的捕获原理

Lambda表达式本质是编译器生成的匿名类,通过重载operator()实现函数调用运算符。mutable修饰:移除operator()的const限定,允许修改副本。表达式定义时,后续外部变量修改不影响已捕获的值(引用捕获除外).

2025-05-07 20:10:33 1007

原创 QTableView复选框居中

QSS居中QTableView::indicator;自定义复选框委托类,实现在 QTableView 中居中显示复选框,并支持点击交互,结合原样式;

2025-04-29 00:00:42 789

原创 静态存储区(Static Storage Area)的总结

静态存储区(Static Storage Area)的总结

2025-04-23 23:37:43 963

原创 前置声明模板函数

前置声明模板函数;显式实例化和模板特化是两种不同的机制;通过显式实例化,分离声明与定义, 可有效隐藏模板实现细节。

2025-04-20 00:52:16 738

原创 QTableWidget 中insertRow(0)(头插)和 insertRow(rowCount())(尾插)的性能差异

QTableWidget 中insertRow(0)(头插)和 insertRow(rowCount())(尾插)的性能差异

2025-04-03 22:35:02 797

原创 解决QSharedPointer栈变量的崩溃问题

QSharedPointer 必须管理 new 创建的堆对象?将栈对象交给 QSharedPointer 会导致运行时崩溃?

2025-03-31 22:21:19 302

原创 nlohmann/json支持QString、QVector、QMap

nlohmann/json支持QString、QVector、QMap

2025-03-19 00:34:25 925

原创 函数指针的指针int (*(*pf())())()

函数指针的指针int (*(*pf())())(){};

2024-11-15 00:13:15 710

原创 结构体是否包含特定类型的成员变量

结构体是否包含特定类型的成员变量

2024-11-10 22:08:27 476

原创 使用enable_if模板处理不同相同结构体c++14及C++17

使用enable_if模板处理不同相同结构体c++14及c++17一种常见错误是声明两个仅在默认模板实参上有别的函数模板。这样做是无效的,因为这些函数声明被当做同一函数模板的再声明(函数模板等价性中并不计入默认模板实参)。

2024-11-10 18:30:27 1171 1

原创 C++超高精度计时器

C++超高精度计时器

2024-04-07 00:36:45 734 2

原创 QToolBox先removeItem再addItem失败

QToolBox先removeItem再addItem失败。函数的调用推迟到当前函数执行完成后。这样,可以确保每次递归调用的深度不会超过函数栈的容量,避免了崩溃的问题。总结起来,通过定时器的延迟可以避免函数栈溢出,因为它将。

2023-12-30 23:22:35 619 1

原创 C++使用策略模式,减少使用switch...case...

C++使用策略模式,减少使用switch...case...

2023-12-06 23:27:30 545

原创 实现极坐标图表QPolarChart的角度轴范围是[0,360]时,0度在水平右侧

默认QPolarChart的范围是[0,360]时,0度在垂直上方。实现极坐标图表QPolarChart的角度轴范围是[0,360]时,0度在水平右侧

2023-11-23 00:07:58 1440

原创 KDChart2.8编译过程-使用VS+CMake-MSVC2017

KDChart2.8编译过程-使用VS+CMake-MSVC2017

2023-11-03 01:01:00 788

原创 KDChart3.0编译过程-使用QT5.15及QT6.x编译

KDChart3.0编译过程-使用QT5.15及QT6.×编译

2023-10-24 23:55:22 1280 3

原创 生产者和消费者线程循环

线程安全-生产者消费者模型

2023-09-04 23:44:20 395

转载 CMake 保姆级教程(下)

通过得到的结果我们可以得到一个结论:在进行路径比较的时候,如果使用 PATH_EQUAL 可以自动剔除路径中多余的分割线然后再进行路径的对比,使用 STREQUAL 则只能进行字符串比较。在遍历列表的时候一共使用了两种方式,一种提供了多个变量来存储当前列表中的值,另一种只有一个变量,但是实际取值的时候需要通过。的方式来操作,注意事项:第一个列表对应的编号是0,第一个列表对应的编号是0,第一个列表对应的编号是0。的加强版,我们在遍历一个整数区间的时候,除了可以指定起始范围,还可以指定步长。

2023-09-03 00:12:49 551

转载 CMake 保姆级教程(上)

CMake 是一个项目构建工具,并且是跨平台的。关于项目构建我们所熟知的还有Makefile(通过 make 命令进行项目的构建),大多是IDE软件都集成了make,比如:VS 的 nmake、linux 下的 GNU make、Qt 的 qmake等,如果自己动手写 makefile,会发现,makefile 通常依赖于当前的编译平台,而且编写 makefile 的工作量比较大,解决依赖关系时也容易出错。而 CMake 恰好能解决上述问题, 其允许开发者指定整个工程的编译流程

2023-09-03 00:08:01 1049

原创 QTableWidget对单元格(QWidget/QTableWidgetItem)的内存管理[clearContents()]

QTableWidget对单元格(QWidget/QTableWidgetItem)的内存管理[clearContents()] 1.clearContents() 会清除表格中的所有单元格内容,包括释放`之前创建的QTableWidgetItem 和通过 setCellWidget() 设置的 QWidget 对象,但是不指向nullptr并且是延时释放QWidget 的而QTableWidgetItem 立即释放;

2023-08-05 19:41:21 1195

原创 C++复刻:[滑动侧边栏]

C++复刻:[滑动侧边栏]

2023-08-01 23:42:17 294

原创 C++复刻:[流光按钮]+[悬浮波纹按钮]

C++复刻:[流光按钮]+[悬浮波纹按钮]

2023-07-30 22:18:03 888 1

原创 QComboBox的Item项携带(存储)一个或多个数据

QComboBox的Item项携带(存储)一个或多个数据

2023-07-27 23:14:07 1457 2

原创 解决嵌入式中QTableWidget双击出现空白QTableWidgetItem输入

解决嵌入式中QTableWidget双击出现空白QTableWidgetItem输入嵌入式中QTableWidget一般只能看数据不能编辑,或者是选择所以双击出现空白QTableWidgetItem输入是不允许的

2023-07-25 22:56:17 793

翻译 <4>[QTCN]图片网络传输工具(服务器端)

图片网络传输工具(服务器端)。亮点:图片网络传输解码。

2023-07-16 23:14:33 369

翻译 <3>[QTCN]图片网络传输工具(客户端)

图片网络传输工具(客户端)亮点:图片网络传输解码。

2023-07-16 22:46:22 371

原创 考核:QTableWidget开发[折叠/展开单元格QTableWidgetItem]

1. 初始化界面:设置表格的显示属性,包括隐藏水平表头、选择行为为行、选择模式为单选,并自动调整列宽。2. 填充表格:根据数据 **faTable** 和 **nTable**,将方案信息和装备信息填充到表格中。每个方案对应一个 **QDialog** 对话框,通过单元格的组件展示在表格中。3. 方案折叠/展开:点击方案的折叠按钮,可以折叠或展开方案的详细信息。折叠时隐藏方案的详细信息,展开时显示方案的详细信息。4. 方案搜索:在搜索框中输入名称,点击搜索按钮,可以搜索并滚动到对应的方案。匹配则展开

2023-07-15 17:22:58 2397

翻译 <2>[QTCN]图片数据转换工具

[QTCN]图片数据转换工具 说明:图片数据转换工具,可以批量将图片转换成数据,将数据转换为图片。 亮点:延时处理,图片数据解码,16进制格式和base64格式,进度条同步显示,文件保存等。新增:自动推算路径无需再选择(不存在则自动创建)

2023-07-12 00:17:38 510

翻译 <1>[QTCN]颜色拾取器

[QTCN]颜色拾取器 - 桌面置顶 - 获取全局鼠标坐标和颜色(Web值、RGB) - **新增**: 按下鼠标右键停止/开启

2023-06-29 11:32:48 419 1

原创 QT桌面挂件动画

QT桌面挂件动画; - 桌面挂件动画置顶 - 切换挂件动画 - 图片选择更换桌面壁纸 - 显示时改变桌面壁纸,隐藏/退出时还原桌面壁纸 - 系统托盘菜单,可选择开/关悬浮挂件功能按键 - 悬浮挂件功能按键随鼠标区域显示/隐藏

2023-06-28 14:55:25 1175

原创 VS+OpenCV字符动画ikun打篮球

VS+OpenCV字符动画ikun打篮球。

2023-06-25 21:07:15 959

原创 Qt二维码生成器+复制到剪贴板

Qt二维码生成器+复制到剪贴板

2023-06-14 21:09:25 503

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除