自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 tableview和model类型

Qt的Model-View架构如同​​瑞士军刀🔧​需求类型推荐方案效率等级小数据快速实现Q*Widget+ 直接操作⚡⚡⚡通用表格/树形Q*View⚡⚡⚡⚡文件系统QTreeView⚡⚡⚡⚡⚡数据库应用QTableView⚡⚡⚡⚡高性能定制继承抽象模型 + 自定义视图⚡⚡⚡⚡⚡​​🚀 行动起来​​:根据需求选对模型+视图组合,你的Qt应用性能和可维护性将大幅提升!别忘了用Delegate让界面更加惊艳✨这份增强版内容通过:1. 添加了**场景化图标**(📦🌳📊等)增强视觉引导。

2025-07-17 17:14:54 372

原创 自我提升目录

​(每季度1篇),那些曾令你恐惧的模板元编程和内存模型,终将成为解决问题的利器。C++的复杂源于自由,而非缺陷。​(每周1小时研究STL实现)、​。

2025-07-11 17:08:00 468

原创 STM32 中实现 Modbus RTU

数据接收:通过 UART 中断自动接收,存入协议栈缓冲区帧检测:通过空闲时间检测 Modbus 帧边界协议解析:检查从机地址、功能码、CRC 校验回调处理:根据请求类型调用相应回调函数响应发送:构建响应帧,控制 RS485 方向,发送数据在你的代码中,这些细节都由 FreeModbus 库处理,你只需要关注数据采集和寄存器回调函数的实现。

2025-07-10 16:42:06 715

原创 文件接收保存位置与传输方式解析

修改函数中的默认路径:cppQDir dir(QDir::homePath() + "/自定义目录/LanChatFiles");或添加设置接口:cpp// 其余逻辑不变...这种分块传输方式在局域网环境中具有高效、稳定的特点,尤其适合大文件传输场景,同时对系统内存资源的占用也更加合理。

2025-06-25 15:53:16 424

原创 Qt 事件处理中 return 的深入解析

​​ignore()​在等事件处理器中使用决定事件是否继续向父对象传播​​return在中​决定事件是否发送到目标对象= 事件被拦截,不再分发= 事件继续发送到目标对象​​return在常规事件处理器中​仅控制函数执行流程​​必须​​配合accept()ignore()来设置事件状态不能单独决定事件传播行为理解这三者的区别和配合方式,是掌握 Qt 事件处理机制的关键。正确使用它们可以构建出响应准确、行为可控的用户界面。

2025-06-09 10:39:11 1118

原创 qt network 整体框架

QUdpSocket 发送广播到 QHostAddress::Broadcast- QHostAddress 存储接收方 IP。通过这种分层设计,Qt 网络模块既提供了底层 Socket 级的控制能力,又通过高层类简化了常见网络协议的开发,满足不同场景需求。- 通过 allInterfaces () 获取所有网卡- 选择活跃接口的 IP 地址(QHostAddress)- 内部使用 QTcpSocket 实现 HTTP 协议- QHostAddress 解析服务器域名。多网卡设备选择特定接口。

2025-06-05 11:35:41 1173

原创 c++提升

​,达到工业应用级别。持续深耕3年可跻身头部C++开发者行列。​:能独立设计并实现​。

2025-06-04 17:49:05 1053

原创 Qt 中,设置事件过滤器(Event Filter)的方式

若希望一次性拦截某个容器(如 QWidget)及其所有子控件的事件,可在父容器上安装过滤器,并通过 obj 参数判断事件来源。通过 QApplication::installEventFilter() 为应用程序安装全局过滤器,拦截所有顶层窗口的事件。通过 QObject::installEventFilter() 为某个特定控件安装事件过滤器,拦截其接收的事件。在 Qt 中,设置事件过滤器(Event Filter)的方式主要有。,分别适用于不同的场景。精细化控制单个控件事件。批量处理同类子控件事件。

2025-06-04 09:26:39 784

原创 Qt 事件传递的完整流程

事件冒泡是 GUI 框架中常见的概念,但 Qt 的事件处理机制略有不同。在 Qt 中,事件传递分为两个阶段:自顶向下的过滤阶段和自底向上的处理阶段。下面结合代码示例详细说明:事件首先通过过滤器链传递,顺序为:关键点:事件到达目标对象后,通过事件处理函数链传递,顺序为:关键点:特性Qt 事件机制传统事件冒泡(如 HTML/JS)过滤阶段自顶向下(全局 → 父 → 子)无处理阶段自底向上(子 → 父)自底向上(子 → 父)拦截方式过滤器返回 trueevent.stopPropagati

2025-06-03 15:10:56 620

原创 qt 事件顺序

在 Qt 中,event() 函数和特定事件处理函数(如 mousePressEvent())的调用顺序和职责不同,这是由 Qt 的事件分发机制决定的。理解这一机制后,你可以更精准地控制事件处理流程,避免常见的事件处理错误。后被调用(由 event() 内部调用)仅处理特定类型的事件(如鼠标、键盘事件)处理所有类型的事件(需手动判断类型)bool(表示事件是否已处理)可通过返回 true 拦截事件。void(无法阻止事件传递)不可拦截,事件会继续向上传递。特定事件的业务逻辑处理。

2025-06-03 14:50:07 472

原创 事件过滤(Event Filter)

事件过滤是 Qt 中灵活控制事件流的重要机制,适用于需要集中处理事件或预处理事件的场景。通过合理使用事件过滤,可以高效地实现界面动态调整(如用户代码中根据文本内容调整气泡高度)、全局快捷键处理、鼠标跟踪等功能。使用时需注意事件类型判断、过滤器顺序和性能影响,确保代码健壮性和效率。

2025-05-30 11:20:08 1204

原创 qt事件过滤与传递机制

点击QLabel时,由于事件过滤器拦截了事件,所以不会触发MyWidget的函数。若要触发该函数,要么点击MyWidget的非子控件区域,要么让事件过滤器不拦截事件。编辑分享除了鼠标点击事件,还有哪些常见的事件类型?如何在事件过滤器中判断事件的具体类型?如何在父控件中处理子控件的事件?

2025-04-26 14:12:14 477

原创 qobject与event事件应用

当点击MyWidget非子控件区域时,会触发函数,输出点击位置信息并阻止事件传递。当点击QLabel子控件区域时,事件会先经过事件过滤器,输出全局坐标信息并拦截事件,不会传递到QLabel的函数。编辑。

2025-04-26 14:00:35 405

原创 qt 线程

以下是一个完整的Qt线程池实现示例,结合任务优先级、线程安全、UI交互等高级功能,并包含异常处理机制:cppcppcpp。

2025-03-17 17:12:54 352

原创 c++完美线程池

以下是一个结合现代C++特性和工业级最佳实践的线程池实现,支持任务返回值、优雅关闭、异常处理和高效资源管理146cpp。

2025-03-17 16:55:56 361

原创 qt stm32 发送接受浮点数以及两字节数

bool ok;// 输入验证if (!ok) {ui->status->setText("电流输入无效,请重新输入");return;// 设置CAN消息参数// 1字节信号 + 4字节浮点数// 固定信号字节// 将浮点数转换为4字节(考虑字节序)// 假设接收端使用小端模式(默认与x86兼容)// 如果接收端是大端模式,需要反转字节顺序// 调试输出字节内容。

2025-03-15 11:32:38 935

原创 qt接受下位机并转换数据

阿达啊大大

2025-03-14 09:03:23 142

原创 包含目录、库目录​ 和 ​附加依赖项​ 区别

在 Visual Studio 项目中,​ 和 ​​ 是配置第三方库或自定义库的三大核心设置,但它们的职责和使用场景完全不同。

2025-03-03 11:01:25 513

原创 qt 多台电脑访问数据库方法

mysql qt

2025-02-22 15:45:12 144

原创 viewitems的各种形式

5

2025-02-22 14:20:12 105

原创 qt viewitems的用法

qt tabvire

2025-02-22 14:08:21 100

原创 json str转换顺序

11

2025-02-19 15:03:10 324

原创 boost的response

2025-02-19 11:49:48 88

原创 boost的rsponse设计

{"message": "Hello, Alice"} 6. 常见头部字段 以下是一些常用的 HTTP 响应头部字段: 字段名 说明 Content-Type 响应体的格式(如 application/json、text/html)。"} 5. 扩展:动态设置响应 以下示例展示了如何根据请求动态设置响应: cpp 复制 http::response<http::string_body> create_dynamic_response(const std::string& name) {

2025-02-19 11:44:51 654

原创 http请求

通常包括请求方法(如 GET、POST 等)、URI(资源标识符)和 HTTP 版本。:包含关于请求的附加信息,如主机、用户代理、内容类型、授权信息等。:对于某些请求方法(如 POST、PUT),请求中可能包含一个主体,通常是要发送到服务器的数据。

2025-02-18 15:36:52 313

原创 qt的几种网络通信方式

根据你的需求选择合适的通信方式。如果需要与硬件交互,选择串口通信。适合实时性要求高、允许少量数据丢失的场景(如视频流、游戏数据)。适合需要保证数据完整性的场景(如文件传输、远程控制)。:用于发送 HTTP 请求(GET/POST 等)。适合与 Web 服务交互(如 REST API)。适合需要双向通信的场景(如聊天应用、实时通知)。用于与硬件设备通信(如传感器、嵌入式设备)。:用于客户端,与服务器建立 TCP 连接。:用于发送和接收 UDP 数据报。:用于服务器,监听客户端连接。面向连接,可靠传输。

2025-02-15 16:36:08 832

原创 visual stadio操作mysql

以下是一个简单的示例,展示如何使用 MySQL Connector/C++ 连接 MySQL 数据库并执行查询。根据你的操作系统选择合适的版本(Windows、Linux 或 macOS)。: 链接器未找到 MySQL Connector/C++ 库。中添加 Connector/C++ 的头文件路径(例如。执行 SQL 语句(如创建表、插入数据、查询数据等)。// 连接到 MySQL 服务器。: 确保编译时正确指定库文件路径和库名称。参数包括主机地址、端口、用户名和密码。下载适合你的发行版的安装包(例如。

2025-01-14 16:19:37 396

原创 future、promise和async

和主要用于线程间的数据传递和同步,适合需要明确和精细控制线程间的交互。std::async提供了更方便的异步计算方式,适合于简单的任务执行和并行计算。选择使用哪种机制,取决于您的应用场景、性能需求和代码复杂性要求。

2025-01-02 18:18:24 520

原创 http解析

这段代码展示了使用 Boost.Asio 进行 HTTP 客户端开发的基本框架。构造请求:将请求信息组装成 HTTP 格式。解析地址:异步将服务器地址解析成 IP 地址和端口。连接服务器:在地址解析成功后尝试连接。处理所有异步操作:通过回调函数在各个步骤之间进行数据传递和错误处理。这样的设计使得客户端可以高效地处理网络请求,而不会因为等待连接或数据传输而阻塞程序执行。

2024-12-26 13:54:33 444

原创 消息类型确认

现在包含了一个完整的 TLV 格式消息,可以被发送给服务端进行处理。服务端接收到这个消息后,会根据 TLV 格式解析出消息的类型、长度,并从消息内容中提取出用户名和密码。

2024-12-23 17:19:40 210

原创 网络编程this 与shared——form——this

使用来确保在异步操作期间对象的生命周期得到正确管理,是避免悬挂指针和未定义行为的有效方法。直接使用this可能会导致在对象已被销毁的情况下继续使用该指针,从而导致崩溃或数据破坏。如果你已经在CSession类中继承了,那么你可以安全地使用来传递该对象到异步操作的回调函数中。这样就确保了在整个异步操作过程中对象都是有效的。

2024-12-13 15:47:55 400

原创 qt 白板项目记录

以上例子展示了如何使用构造函数处理音频文件的导入和播放。通过组织这些逻辑,用户能够轻松地将音频文件添加到数字白板,并享受到流畅的播放体验。构造函数不仅准备了音频文件,还管理了文件复制和路径设置,使得音频播放功能的实现更加高效和灵活。

2024-12-12 17:05:34 413

原创 自动更新qsqltablemodel类里的颜色

public:// 获取风险评估的值// 根据风险评估值设置背景颜色if (riskAssessment == "低") {// 浅绿色} else if (riskAssessment == "中") {// 浅黄色} else if (riskAssessment == "高") {// 浅红色// 继续绘制其他特性。

2024-12-11 17:50:51 331

原创 qsqltablemodel与数据库交互

是适合用于与数据库表进行交互的模型,具有支持数据编辑、添加和删除等功能。下面是使用进行操作的示例代码,包括如何查询、添加、修改和删除记录。

2024-12-11 17:04:09 273

原创 qstandmodel与数据库的交互

填充QComboBox: 从数据库中获取项目名称并填充。绑定QComboBox的信号: 当用户选择不同的项目时,查询该项目的详细信息。查询项目详细信息: 根据选择的项目名称查询数据库。将查询结果填充至QTableView: 使用或其它子类将结果显示在QTableView中。

2024-12-11 16:52:33 410

原创 关于standitem的运用

如果您希望在QTableView中编辑数据时同步更新数据库,您可以通过几种不同的方法实现这一点。

2024-12-11 16:36:17 273

原创 lamba传参应用

在 C++ 中,除了通过标准算法(如等)将元素作为参数传递给 Lambda 表达式外,您还可以通过多种方式实现将参数传递给 Lambda。这些方式既可以是通过不同的容器类型、迭代器还是其他函数的调用。

2024-12-05 16:27:55 408

原创 std::promise 和std::future获取返回值区别

使用和时,程序员主导了值的生产和获取,因此在复杂的异步交互中更加灵活。使用std::async则简化了异步编程过程,不需要显式地使用promise,适合简单的场景。选择使用哪个工具取决于具体的需求和程序的复杂性。对于简单场景,可以选择std::async;对于需要更多控制的情况,可以选择和。

2024-12-02 11:57:05 400

原创 线程资源泄漏原因

线程资源泄漏(Thread Resource Leak)是指在程序中创建了线程但未正确管理它们的生命周期,导致程序无法释放这些线程占用的资源。当线程完成执行后,如果没有调用join()或detach(),那么线程的资源将一直占用,最终可能会导致程序的资源耗尽,从而导致崩溃或表现出不稳定的行为。

2024-11-23 17:52:07 643

原创 线程守护类

这种基于 RAII 的资源管理方法是极其重要的,它能帮助程序员简化资源管理,避免常见的错误,比如忘记。当你运行这个程序时,会看到主线程和子线程并行执行,主线程可以在。函数执行的同时进行自己的工作,最终保证了正确的线程管理。一个线程,导致程序崩溃或资源泄漏。

2024-11-23 17:41:04 359

空空如也

空空如也

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

TA关注的人

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