· Qt 学习知识地图

Qt 学习知识地图

1282 字
6 分钟
Qt 学习知识地图
StarryLin/Geek · 摘要

本目录汇总Qt示例工程学习笔记,按基础环境、核心机制、进阶应用三阶段组织,覆盖事件循环、信号槽、线程与数据库,缺qt18属源工程原貌。

Qt 学习知识地图#

本目录由 D:\QT_place\QT_study_pjt 中各 Qt 示例工程(qt01→qt22,缺 qt18)逐篇提炼而来,每篇均为详细 mermaid 笔记,含「每章 Tips」与「Q&A」。本页是总入口。

学习路线总览#

flowchart LR subgraph 基础与环境["一、基础与环境(qt01–qt07)"] A1["01 第一个程序"] --> A2["02 QWidget 基础"] A2 --> A3["03 CMake 构建"] A3 --> A4["04 CMake+Qt6"] A4 --> A5["05 VSCode 模板"] A5 --> A6["06 CLion"] A6 --> A7["07 RCC 资源"] end subgraph 核心机制["二、核心机制(qt08–qt17)"] A7 --> B1["08 对象树"] B1 --> B2["09 QString 编码"] B2 --> B3["10 char/字符串"] B3 --> B4["11 布局"] B4 --> B5["12 随机/定时器"] B5 --> B6["13 信号槽"] B6 --> B7["14 键盘面板"] B7 --> B8["15 事件系统"] B8 --> B9["16 鼠标事件"] B9 --> B10["17 键盘事件"] end subgraph 进阶应用["三、进阶应用(qt19–qt22)"] B10 --> C1["19 线程 moveToThread"] C1 --> C2["20 绘图基础"] C2 --> C3["21 速度表"] C3 --> C4["22 SQLite 数据库"] end

💡 Tips:路线不是强制顺序,但强烈建议先走完”基础与环境”再进”核心机制”——对象树/信号槽/事件都依赖你已经理解 QApplication + exec() 的事件循环(01)。“进阶应用”三篇(线程/绘图/SQLite)是核心机制的落地组合技,建议放在最后。

各篇导航表#

序号文件主题一句话要点关键 mermaid
0101-qt-first-program.md第一个 Qt 程序QApplication + exec() 事件循环程序启动/事件循环 flowchart
0202-qt-widget-basic.mdQWidget 基础控件显示、父子关系、w.show()控件层级 flowchart
0303-cmake-build.mdCMake 构建find_package(Qt5) + target_link_libraries构建流程 flowchart
0404-cmake-qt6.mdCMake + Qt6Qt5→Qt6 的 CMake 差异差异对比 flowchart
0505-vscode-cmake-template.mdVSCode + CMake 模板VSCode 开发 Qt 的配置模板工具链 flowchart
0606-clion-project.mdCLion 工程CLion 配置 Qt 工具链工程结构 flowchart
0707-rcc-resource.mdRCC 资源系统.qrc + :/ 前缀访问资源资源编译 flowchart
0808-object-tree.md对象树父对象析构自动析构子对象父子归属/析构 classDiagram
0909-qstring-char.mdQString 与编码toUtf8/fromUtf8 解决中文乱码编码转换 flowchart
1010-char-string.mdchar / 字符串C++ 字符编码基础层次 classDiagram
1111-layout.md布局管理器H/V/Grid/Form 布局替代绝对坐标嵌套层级 classDiagram
1212-random-timer.md随机数 / 定时器QRandomGenerator + QTimer 动画随机/属性协作 flowchart
1313-signal-slot.md信号与槽connect/emit/Q_OBJECT 宏emit→槽 sequenceDiagram
1414-keypad.md键盘面板用信号槽把按键接到逻辑信号流向 flowchart
1515-event-system.md事件系统event()/事件过滤器分发链事件分发 flowchart
1616-mouse-event.md鼠标事件mousePress/Move/ReleaseEvent事件处理 flowchart
1717-keyboard-event.md键盘事件keyPressEvent/QKeyEvent事件处理 flowchart
1919-thread-movetothread.md线程 moveToThreadWorker 移到子线程、信号跨线程对象归属线程迁移 flowchart
2020-painter-base.md绘图基础paintEvent + QPainter重绘流程 flowchart
2121-speed-meter.md速度表自定义控件绘制绘制流程 flowchart
2222-sqlite.mdSQLite 数据库Qt SQL 模块增删改查建库/CRUD flowchart

💡 Tips:本表”关键 mermaid”一列可直接定位每篇最值得看的图。如果某篇概念记不清,先回来看对应图,再点文件名进正文。

知识依赖速查#

  • 想懂”按钮点了为什么有反应” → 先 01(事件循环)→ 13(信号槽)→ 14(面板示例)
  • 想懂”窗口关掉为什么内存不漏” → 08(对象树)
  • 想懂”界面卡死” → 19(线程,把耗时逻辑移出 GUI 线程)
  • 想懂”自定义好看控件” → 20(绘图)→ 21(速度表实战)
  • 想懂”本地存数据” → 22(SQLite)
  • 想懂”中文乱码” → 09(QString 编码)→ 10(字符基础)

Q&A(常见问题)#

Q1:qt18 去哪了? A1:源工程 D:\QT_place\QT_study_pjt 里本来就没有 qt18_* 文件夹(编号从 qt17 直接跳到 qt19),因此本知识地图只有 21 篇,编号中间缺 18 是原始工程使然,并非遗漏。

Q2:这些笔记和 嵌入式笔记 是什么关系? A2:二者并列放在 gitcode_knowledge 下,模板风格一致(YAML 头/目录/API 表/mermaid/踩坑/Q&A/Tips),但内容无关——嵌入式笔记 是 ESP32 嵌入式方向,QT学习笔记 是 Qt GUI 方向。

Q3:为什么有的文件夹(如 qt22)笔记是”标准示例”而非工程源码解析? A3:qt22 文件夹实际只含 .idea IDE 配置、没有可参考源码,因此该篇采用 Qt SQLite 标准示例写法并已在”核心代码解析”中注明;其余各篇均引用了对应工程真实源码。

Q4:想让这些笔记也能被”笔记搜索”检索怎么办? A4:可用 qmd 建立集合:qmd collection add D:/GITHUB_PLACE/gitcode_knowledge/QT学习笔记 --name qt-notes 再 qmd embed(需先安装 bun)。这是可选增强,不影响笔记本身使用。

Tips(全局速记)#

最容易忽视的细节#

  • 每篇都带「每章 Tips」与「Q&A」,遇到概念混淆先翻这两处。
  • 编号缺 18 是源工程事实,不是笔记缺失。

踩坑记录#

  • 构建类(03–07)最容易卡在工具链/CMake 配置,问题多在环境而非 Qt API。

与后续章节的衔接#

  • Qt 笔记与 嵌入式笔记 可互为”GUI 端 / 设备端”参考:例如 SQLite 笔记的数据,可来自嵌入式端采集。

设计决策思考#

  • 学习顺序按”基础→核心→进阶”三阶段推进,比按文件夹字母序更顺;本地图即按此组织。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Qt 学习知识地图
https://mjzy.tech/posts/qt/00-qt-knowledge-map/
作者
JIA
发布于
2026-08-17
许可协议
CC BY-NC-SA 4.0

评论区

正在加载 GitHub 评论…

Tips · 随手记
仅自己可见 · 每篇文章单独保存

文章目录