Qt
Qt 是跨平台应用框架。学习时先掌握对象所有权、事件循环和信号槽,再进入控件、模型视图、线程和平台集成。
核心模型
跳转到“核心模型”flowchart LR A[QObject 所有权] --> B[事件循环] B --> C[信号与槽] C --> D[界面状态] C --> E[后台任务] D --> F[Widgets 或 QML]| 主题 | 入口 |
|---|---|
| 对象与基础能力 | 对象模型、Qt 核心能力、类概览 |
| 信号与槽 | 信号、槽、连接管理 |
| 控件与交互 | 按钮、按钮组、Action、惯性滚动 |
| 界面组织 | Designer 与对象寿命、布局与 Spacer、滚动区、堆叠页面、容器与框线、布局参数与页面 |
| 控件设计 | 构造与父对象、继承与组合、内容区类型与替换 |
| 界面样式 | QSS 选择器与继承、全局样式与自定义背景、组合控件悬停、QSS 属性与状态参考 |
| 事件处理 | 事件分发与过滤器、拖动子控件、条件动作 |
| 声明式界面 | QML 语法与属性、信号监听、附加属性、锚点与边距、JavaScript、Qt Quick 元素 |
| 并发 | 线程选型、QThread 基础、Worker Object、线程同步、任务完成与请求寿命 |
| 图形与图像 | Graphics View、图像互操作、QCustomPlot 坐标轴刻度、Qt Charts 版本与极坐标、轴关联与背景、阴影效果 |
| 数据类型 | QVector 与 QList、元类型与排队传值、QVariant 与 QVariantMap |
| 字符串与文件 | 转换和调试、文件校验、文件表格模型、XML 任务模板 |
| 数据库与网络 | Qt SQL、TCP 分帧与线程 |
| 资源与构建 | 资源和素材、AUTOMOC、第三方库 |
| 平台与发布 | Windows Kit 与 DLL、ARM 图形依赖、未使用参数 |
实践原则
跳转到“实践原则”QObject父子关系负责对象生命周期时,不再重复手动释放。- GUI 对象只在主线程操作;后台工作通过信号传递结果。
- 长任务不要阻塞事件循环,否则界面无法绘制和响应输入。
- 控件只负责交互,业务规则和 I/O 放入可独立测试的对象。
参考:Qt 官方文档。