--- title: Qt tags: - topic - qt - cpp - joplin type: topic source_type: reconstructed created: 2026-04-23 updated: 2026-04-27 aliases: - Qt重构 --- # Qt > [!abstract] > 本主题重构自 `使用Qt和C++构造UI界面` 系列笔记,并补充接入 `加解密客户端(Qt+LibreSSL)` 项目文档。重点不是只记控件 API,而是把 Qt 作为一套“对象模型 + 事件循环 + 窗口组织 + 构建系统”的 GUI 框架来理解。 ## 这门主题在解决什么问题 - Qt 为什么能作为 C++ GUI 开发的基础框架,而不仅是一组零散控件。 - 一个 Qt 程序从项目创建、入口函数、事件循环到窗口显示是怎样跑起来的。 - 信号槽、对象树、主窗口、对话框、布局和常用控件如何共同组织交互界面。 - 事件、绘图、资源和文件系统如何把“静态界面”扩展成真正可运行的应用。 - `qmake` 与 `CMake` 分别解决什么问题,迁移时应关注哪些工程边界。 ## 推荐复习顺序 1. [[Qt框架与项目结构]] 2. [[Qt信号槽与对象模型]] 3. [[Qt窗口与界面布局]] 4. [[Qt事件绘图与文件系统]] ## 模块地图 - [[Qt框架与项目结构]]:Qt 定位、跨平台特性、项目创建、`.pro`、`QApplication`、首个窗口程序、资源系统与构建迁移。 - [[Qt信号槽与对象模型]]:[[Qt信号与槽]]、[[Qt对象树]]、连接规则、自定义信号槽、Lambda 写法与对象生命周期。 - [[Qt窗口与界面布局]]:[[QMainWindow]]、[[QDialog]]、[[Qt布局管理]]、常用控件和自定义控件提升。 - [[Qt事件绘图与文件系统]]:[[Qt事件机制]]、[[QPainter]]、绘图设备、资源文件、文件读写与路径处理。 ## 关键概念 - [[Qt信号与槽]] - [[Qt对象树]] - [[QMainWindow]] - [[QDialog]] - [[Qt布局管理]] - [[Qt事件机制]] - [[QPainter]] - [[Qt文件系统]] - [[QMake与CMake迁移]] ## 常见误区 - 把 Qt 理解成“拖控件做界面”的工具,而不是一套完整的对象与事件框架。 - 只会写 `connect`,不理解信号槽是建立解耦关系的机制。 - 把 `parent` 理解成继承关系,而不是对象树和生命周期管理关系。 - 用绝对坐标硬摆控件,不借助布局管理,导致窗口一变尺寸就失真。 - 只会调用 `show()`,却不清楚模态、非模态、栈对象与堆对象的生命周期差异。 - 把绘图、资源系统、文件系统看成附属功能,结果做不出完整可维护的桌面程序。 - 把 `qmake` 和 `CMake` 当成语法替换,不先辨认模块、资源、源文件和构建目标的映射关系。 - 只会按教程写示例窗口,不把 Qt 工程能力迁移到真实项目文档和功能流程分析中。 ## 来源范围 - [[raw/Joplin/编程学习项目/使用Qt和C++构造UI界面/1. Qt概述.md]] - [[raw/Joplin/编程学习项目/使用Qt和C++构造UI界面/2. 创建Qt项目.md]] - [[raw/Joplin/编程学习项目/使用Qt和C++构造UI界面/3. 第一个Qt小程序.md]] - [[raw/Joplin/编程学习项目/使用Qt和C++构造UI界面/4. 信号和槽机制.md]] - [[raw/Joplin/编程学习项目/使用Qt和C++构造UI界面/5. QMainWindow.md]] - [[raw/Joplin/编程学习项目/使用Qt和C++构造UI界面/6. 对话框QDialog.md]] - [[raw/Joplin/编程学习项目/使用Qt和C++构造UI界面/7. 布局管理器.md]] - [[raw/Joplin/编程学习项目/使用Qt和C++构造UI界面/8. 常用控件.md]] - [[raw/Joplin/编程学习项目/使用Qt和C++构造UI界面/9. Qt消息机制和事件.md]] - [[raw/Joplin/编程学习项目/使用Qt和C++构造UI界面/10 绘图和绘图设备.md]] - [[raw/Joplin/编程学习项目/使用Qt和C++构造UI界面/11 文件系统.md]] - [[raw/Joplin/编程学习项目/使用Qt和C++构造UI界面/附录1 从 QMake 迁移到 CMake 详细记录.md]] - [[raw/Joplin/编程学习项目/使用Qt和C++构造UI界面/附录2 CMake 模板.md]] - [[raw/Joplin/实际项目开发文档/加解密客户端(Qt+LibreSSL)/1.项目源代码.md]] - [[raw/Joplin/实际项目开发文档/加解密客户端(Qt+LibreSSL)/2.项目功能流程分析.md]] - [[raw/Joplin/实际项目开发文档/加解密客户端(Qt+LibreSSL)/3.项目开源协议_.md]] - [[raw/Documents/Qt 6 C++开发指南 (王维波 栗宝鹃 侯春望) (Z-Library)/Qt 6 C++开发指南 (王维波 栗宝鹃 侯春望) (Z-Library).md]] ## 相关入口 - [[Documents资料库]] - [[joplin-overview]] - [[joplin-rebuild-schema]]