<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[treehan的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/treehan</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; treehan]]></copyright><item><title><![CDATA[QT串口编程全面讲解]]></title><link>https://blog.csdn.net/treehan/article/details/150388761</link><guid>https://blog.csdn.net/treehan/article/details/150388761</guid><author>treehan</author><pubDate>Thu, 14 Aug 2025 13:22:04 +0800</pubDate><description><![CDATA[支持Windows、Linux、macOS等主流操作系统提供同步和异步I/O操作支持常见的串口参数配置不依赖其他库，纯QT实现Q_OBJECTpublic:while (buffer.size() >= 4) { // 假设协议头为4字节if (buffer.startsWith("\xAA\x55")) { // 协议头// 假设协议头为4字节 if(buffer . startsWith("\xAA\x55")) {]]></description><category></category></item><item><title><![CDATA[QT网络编程总结]]></title><link>https://blog.csdn.net/treehan/article/details/150388724</link><guid>https://blog.csdn.net/treehan/article/details/150388724</guid><author>treehan</author><pubDate>Thu, 14 Aug 2025 13:20:45 +0800</pubDate><description><![CDATA[TCP和UDP套接字编程HTTP/HTTPS协议支持FTP协议支持DNS查询网络代理支持网络会话管理SSL/TLS安全通信。]]></description><category></category></item><item><title><![CDATA[QT多线程全面讲解]]></title><link>https://blog.csdn.net/treehan/article/details/150275150</link><guid>https://blog.csdn.net/treehan/article/details/150275150</guid><author>treehan</author><pubDate>Tue, 12 Aug 2025 21:00:00 +0800</pubDate><description><![CDATA[QT多线程编程既强大又复杂，理解其核心机制和最佳实践对于开发高性能、响应迅速的应用程序至关重要。合理设计比盲目使用线程更重要。在简单场景下，QtConcurrent和QThreadPool通常比直接使用QThread更安全高效。]]></description><category></category></item><item><title><![CDATA[Qt Charts 深度解析与实战指南]]></title><link>https://blog.csdn.net/treehan/article/details/150266488</link><guid>https://blog.csdn.net/treehan/article/details/150266488</guid><author>treehan</author><pubDate>Tue, 12 Aug 2025 11:46:04 +0800</pubDate><description><![CDATA[/ 继承QChartView实现自定义绘制protected:painter.drawText(10,10,"自定义标记");]]></description><category></category></item><item><title><![CDATA[QFile、QSaveFile 和 QTextStream 在文件操作中的对比总结]]></title><link>https://blog.csdn.net/treehan/article/details/150016441</link><guid>https://blog.csdn.net/treehan/article/details/150016441</guid><author>treehan</author><pubDate>Tue, 12 Aug 2025 11:39:19 +0800</pubDate><description><![CDATA[以下是 Qt 中 、 和  在文件操作中的核心函数对比总结，涵盖打开、读取、写入和保存的常用方法：]]></description><category></category></item><item><title><![CDATA[QImage与QPixmap类详解及选用指南]]></title><link>https://blog.csdn.net/treehan/article/details/148655917</link><guid>https://blog.csdn.net/treehan/article/details/148655917</guid><author>treehan</author><pubDate>Sat, 14 Jun 2025 18:02:26 +0800</pubDate><description><![CDATA[在实际应用中，通常先用QImage加载和处理图像，再转换为QPixmap用于显示，这样可以兼顾处理效率和显示性能。选择QImage还是QPixmap主要取决于你的具体需求和使用场景。根据上述分析，选择最适合你当前任务的类，可以显著提高应用程序的性能和稳定性。：在非GUI线程使用QPixmap。：对QPixmap进行像素级操作。]]></description><category></category></item><item><title><![CDATA[Qt图形/视图架构详解]]></title><link>https://blog.csdn.net/treehan/article/details/148529538</link><guid>https://blog.csdn.net/treehan/article/details/148529538</guid><author>treehan</author><pubDate>Mon, 09 Jun 2025 10:39:29 +0800</pubDate><description><![CDATA[通过继承public:// 使用自定义项。]]></description><category></category></item><item><title><![CDATA[QT绘图技术适用场景及项目选型指南]]></title><link>https://blog.csdn.net/treehan/article/details/148529218</link><guid>https://blog.csdn.net/treehan/article/details/148529218</guid><author>treehan</author><pubDate>Mon, 09 Jun 2025 10:28:06 +0800</pubDate><description><![CDATA[QT绘图系统功能丰富，不同场景下需要选用不同的技术组合。下面结合实际项目场景，讲解如何选择最合适的QT绘图技术。]]></description><category></category></item><item><title><![CDATA[QT绘图知识点总结]]></title><link>https://blog.csdn.net/treehan/article/details/148526092</link><guid>https://blog.csdn.net/treehan/article/details/148526092</guid><author>treehan</author><pubDate>Mon, 09 Jun 2025 10:25:21 +0800</pubDate><description><![CDATA[QT提供了强大的2D绘图功能，主要通过QPainter类和相关工具类实现。]]></description><category></category></item><item><title><![CDATA[Qt 的重要机制及其典型应用项目]]></title><link>https://blog.csdn.net/treehan/article/details/148100189</link><guid>https://blog.csdn.net/treehan/article/details/148100189</guid><author>treehan</author><pubDate>Tue, 20 May 2025 22:39:41 +0800</pubDate><description><![CDATA[Qt 的机制设计使其成为从简单工具到复杂系统的全能框架，根据项目需求灵活组合这些机制是关键。Qt 的事件通信机制，允许对象间松耦合通信（一个信号可连接多个槽，支持跨线程）。工业跨平台 HMI（如 SCADA 系统）。软件功能模块化（如 IDE 的插件市场）。自定义控件交互（如绘图软件的画笔工具）。数据变化实时更新（如传感器数据展示）。自定义 UI 风格（如扁平化设计）。自定义渲染（如单元格内绘制进度条）。流畅的 UI 动效（如侧边栏滑动）。UI 交互（如按钮点击触发逻辑）。]]></description><category></category></item><item><title><![CDATA[Qt SQL类对比：用餐厅管理系统来理解]]></title><link>https://blog.csdn.net/treehan/article/details/148076777</link><guid>https://blog.csdn.net/treehan/article/details/148076777</guid><author>treehan</author><pubDate>Mon, 19 May 2025 23:22:22 +0800</pubDate><description><![CDATA[类餐厅岗位比喻工作特点典型任务举例QSqlQuery全能服务员什么都能做，但比较累复杂报表、数据导入导出电子菜单屏只能展示信息，不能交互显示今日特价、畅销榜库存管理员专门管理一个仓库，可以增删改查食材库存管理、员工信息管理智能点餐系统能理解菜品和分类的关系顾客点餐界面、带分类的商品管理。]]></description><category></category></item><item><title><![CDATA[Qt SQL 模型类对比与选用指南]]></title><link>https://blog.csdn.net/treehan/article/details/148076711</link><guid>https://blog.csdn.net/treehan/article/details/148076711</guid><author>treehan</author><pubDate>Mon, 19 May 2025 23:16:15 +0800</pubDate><description><![CDATA[简单数据管理界面：优先考虑QSqlTableModel报表类功能：使用QSqlQueryModel复杂业务逻辑：直接使用QSqlQuery有外键关联的表：选择QSqlRelationalTableModel性能关键路径：考虑直接使用QSqlQuery避免模型开销记住，这些类不是互斥的，一个复杂的应用程序可能会同时使用所有四种类型的类来处理不同的需求。选择的关键是根据具体场景权衡开发效率、维护成本和运行性能。]]></description><category></category></item><item><title><![CDATA[QSqlRelationalTableModel 深度讲解与实战示例]]></title><link>https://blog.csdn.net/treehan/article/details/148076553</link><guid>https://blog.csdn.net/treehan/article/details/148076553</guid><author>treehan</author><pubDate>Mon, 19 May 2025 23:08:26 +0800</pubDate><description><![CDATA[/ 自定义关系显示// 获取原始外键值// 自定义查询关联表");// 返回简称public:if (index.column() == 2) { // 部门列// 添加额外选项editor->addItem("未分配", 0);// 获取关系模型++i) {// 使用自定义委托QSqlRelationalTableModel 是 Qt 中处理关系数据的强大工具：自动处理外键关系，简化开发与视图组件完美集成，支持直接编辑。]]></description><category></category></item><item><title><![CDATA[QSqlQuery 深度讲解与实战示例]]></title><link>https://blog.csdn.net/treehan/article/details/148074363</link><guid>https://blog.csdn.net/treehan/article/details/148074363</guid><author>treehan</author><pubDate>Mon, 19 May 2025 21:04:32 +0800</pubDate><description><![CDATA[QSqlQuery 是 Qt SQL 模块中最核心的类之一，它：提供了执行任意 SQL 语句的能力支持预编译语句，安全高效可以精细控制查询过程和结果处理适用于从简单查询到复杂数据库操作的各种场景掌握 QSqlQuery 的使用是进行 Qt 数据库开发的基础，结合事务、批量操作等高级用法，可以构建出高效可靠的数据库应用。]]></description><category></category></item><item><title><![CDATA[QSqlQueryModel 深度讲解]]></title><link>https://blog.csdn.net/treehan/article/details/148066955</link><guid>https://blog.csdn.net/treehan/article/details/148066955</guid><author>treehan</author><pubDate>Mon, 19 May 2025 16:24:25 +0800</pubDate><description><![CDATA[/ 设置水平头标签model.setHeaderData(1, Qt::Horizontal, tr("姓名"));model.setHeaderData(2, Qt::Horizontal, tr("薪水"));// 自定义数据展示格式// 对薪水列进行格式化public:if (index.column() == 1 || index.column() == 2) // 使姓名和薪水可编辑WHERE id =?if (!refresh();]]></description><category></category></item><item><title><![CDATA[QSqlTableModel 深度讲解]]></title><link>https://blog.csdn.net/treehan/article/details/148065819</link><guid>https://blog.csdn.net/treehan/article/details/148065819</guid><author>treehan</author><pubDate>Mon, 19 May 2025 16:08:42 +0800</pubDate><description><![CDATA[/ 设置水平表头标签model->setHeaderData(1, Qt::Horizontal, tr("姓名"));model->setHeaderData(2, Qt::Horizontal, tr("工资"));QSqlTableModel 是Qt中一个非常方便的数据库操作类，它特别适合：需要对单个表进行CRUD操作的场景快速开发数据库管理界面需要将数据库表直接绑定到视图组件的应用它的主要优点是简化了数据库操作，但灵活性相对较低。]]></description><category></category></item><item><title><![CDATA[数据库多个表关联的方式技巧]]></title><link>https://blog.csdn.net/treehan/article/details/147810826</link><guid>https://blog.csdn.net/treehan/article/details/147810826</guid><author>treehan</author><pubDate>Fri, 09 May 2025 09:11:45 +0800</pubDate><description><![CDATA[多个表关联就像把不同的Excel表格通过共同字段连接起来，让数据能够"对话"。]]></description><category></category></item><item><title><![CDATA[深入浅出：Qt文件操作三剑客（QFile、QTextStream、QDataStream）]]></title><link>https://blog.csdn.net/treehan/article/details/147634968</link><guid>https://blog.csdn.net/treehan/article/details/147634968</guid><author>treehan</author><pubDate>Wed, 30 Apr 2025 16:17:58 +0800</pubDate><description><![CDATA[记住：QFile是基础，QTextStream和QDataStream是在它基础上构建的高级工具。：就像点一份现成的套餐 - 厨师(Stream)帮你把食材(text)处理好，直接享用。：就像真空包装外卖 - 把复杂的菜品(数据结构)打包成标准化格式，确保送到家不变味。：就像直接去厨房拿食材 - 你能拿到最原始的东西，但需要自己处理。会做换行符转换（\n -> \r\n on Windows）自动处理编码转换（UTF-8/16等）需要确保数据精确复原（如科学计算数据）需要手动处理所有细节（编码、格式等）]]></description><category></category></item><item><title><![CDATA[QT模型/视图结构：用生活例子讲透技术原理]]></title><link>https://blog.csdn.net/treehan/article/details/147397155</link><guid>https://blog.csdn.net/treehan/article/details/147397155</guid><author>treehan</author><pubDate>Mon, 21 Apr 2025 16:55:03 +0800</pubDate><description><![CDATA[模型是大脑：只负责管理数据，不知道如何显示视图是外表：决定数据的展示方式，不关心数据存储委托是交互：处理用户如何查看和修改数据信号是广播：数据变化时自动通知所有相关视图更新分离是优势：可以随意更换视图而不影响数据逻辑就像超市可以随时调整货架布局而不影响仓库库存，QT的模型/视图结构让数据管理和显示完全解耦，大大提高了灵活性和可维护性。]]></description><category></category></item><item><title><![CDATA[Qt事件处理机制，就像取快递]]></title><link>https://blog.csdn.net/treehan/article/details/147279813</link><guid>https://blog.csdn.net/treehan/article/details/147279813</guid><author>treehan</author><pubDate>Wed, 16 Apr 2025 16:35:41 +0800</pubDate><description><![CDATA[想象你开了一个快递站（Qt应用程序），每天会有各种快递（事件）送过来，比如：鼠标快递（点击、移动）键盘快递（按键按下、释放）窗口快递（窗口大小变化、关闭请求）定时器快递（定时触发的任务）这些快递都是由 Qt系统（快递总公司） 统一派发到你的快递站的。你的快递站（QObject/QWidget）处理快递的流程是这样的：所有快递先送到 前台（函数），前台会拆开包裹，看看是什么类型的快递（）。//其中，参数e是事件对象，通过就可以得到事件的具体类型。前台根据快递类型，决定是：自己处理（比如鼠标事件交给 ，键盘事件]]></description><category></category></item></channel></rss>