如果你写 C++ 写得还算顺手,一碰到 Qt 就开始心里没底——信号槽能连上但说不清为什么能连、对象删了程序却崩在别处、多线程跑起来界面偶尔卡死——那这门课的定位就很明确:补的是从"语法会用"到"机制说得清"之间那段缺口。它不教 C++ 本身,也不打算把 Qt 的每个模块铺一遍,而是盯着 Qt 里最容易让人产生"能跑但不懂"错觉的几块硬骨头。

先确认自己缺的是哪一块

Qt 的学习曲线有个特点:上手极快,几百行就能做出带界面的小工具,于是很多人停在了"抄得动示例"这一步。可一旦项目里出现对象生命周期交错、事件循环嵌套、跨线程更新 UI,问题就会以崩溃或偶发卡顿的形式冒出来,而报错位置往往离真正的错因很远。

这门课覆盖的内容,基本对应几类典型症状:

  • 知道 new 出来的控件不用手动 delete,但说不清父对象机制到底怎么接管、析构顺序如何影响子对象;
  • 会写 connect,却没想过信号发出到槽被调用之间经历了什么,队列连接和直接连接的差别在什么场景下才会咬人;
  • 多线程里直接改 UI 报错,改用信号槽又不确定参数是怎么跨线程传递的;
  • 程序退出时偶发崩溃,怀疑是野指针却定位不到;
  • 看到 moc 生成的那堆代码,不知道它和普通 C++ 编译流程差在哪。

对上其中两三条,这门课值得你花时间;如果连 C++ 的类、虚函数、RAII 都还没写熟,建议先回去补语言基础,否则 Qt 的机制讲解会变成背结论。

课程把重点放在哪

从结构上看,它走的是一条"先看清框架轮廓,再钻进机制内部"的路线。开头部分解决的是认知问题:Qt 到底是什么、一个 Qt 程序的工程结构长什么样、从 main 到窗口显示之间跑了哪些步骤。这一步看着基础,但很多人恰恰是跳过了它,后面看机制讲解时缺了坐标系。

中间段是这门课真正的分量所在。元对象系统那一节会讲清楚 moc 在编译期做了什么、信号槽的底层为什么需要它,这解释了"为什么信号槽必须写在有 Q_OBJECT 的类里"这类平时靠记忆应付的问题。内存管理那一节把父子对象树、对象析构、智能指针在 Qt 里的取舍连起来讲,配合内存泄漏检测工具的实操,属于看完能直接用到现有代码里的部分。

后半段转向并发与通信。线程部分不是泛泛讲 QThread 的用法,而是围绕"线程间怎么安全地传数据、怎么让后台任务不阻塞界面"展开,这恰好是初学者写多线程时翻车最多的地方。

看完应该能回答的问题

判断一门课有没有真的学进去,比看进度条更靠谱的办法是拿问题自测。学完这门课,下面这些应该能用自己的话讲明白,而不是靠回忆视频里的原话:

  • 一个 QObject 被指定父对象之后,它的生命周期由谁决定,析构时子对象按什么顺序释放?
  • 信号槽在跨线程时默认走哪种连接方式,参数拷贝发生在哪一步,为什么不能直接传引用到另一个线程?
  • moc 生成的代码在构建流程里处于什么位置,去掉 Q_OBJECT 宏之后哪些功能会失效?
  • 事件循环被什么阻塞时界面会假死,把耗时操作挪到线程里要注意哪些边界?
  • 用 VLD 报出的泄漏,如何判断是 Qt 对象树该管却没管的,还是自己裸指针写漏了?

如果这些问题你只能答出一半,说明知识点还散着,建议二刷时带着它们逐个定位到对应章节。配套练习不缺,视频里跟着敲一遍只是最低要求,更有效的是拿自己手头的小项目做一次内存排查和线程改造,把课上讲的判断方法用出来一次,记忆才会稳。

这门课不承诺让你精通 Qt 的全部模块,网络、数据库、QML 这些它没打算展开。它的价值集中在框架运行原理和几个高频踩坑点上——把这几处打通,后面无论走 Widgets 还是 QML,至少不会再对着崩溃堆栈发懵。

C++ Qt 基础与进阶教程分享

Qt框架深度解析,从基础到进阶

编辑点评

系统讲解Qt框架,涵盖内存管理、事件处理、线程通信等核心知识,实战项目丰富,适合有C++基础的开发者。

⭐ 编辑推荐

本教程深入浅出地讲解Qt框架,从基础语法到高级应用,通过实战项目提升开发技能。

课程亮点

• Qt框架深度解析
• 实战项目丰富
• 系统讲解核心知识

课程目录

C++ Qt基础与进阶教程分享文档.png  [493.5 KB]
11.QStringList_ev.mp4  [80.3 MB]
100.用QSlider实现视频进度调节与播放_ev.mp4  [53.1 MB]
150.obs模块加载深入了解_ev.mp4  [22.2 MB]
91.Qt程序如何打包发布_ev.mp4  [52.4 MB]
157.obs封装类初始化功能实现三_ev.mp4  [33.9 MB]
110.MFC单文档项目运行原理浅析_ev.mp4  [58.0 MB]
118.添加标题栏其它控件_ev.mp4  [59.5 MB]
37.实战练习 Qt视频播放器开发二 :实现拖拽调节视频播放进_ev.mp4  [62.2 MB]
135.obs线程库pthreadwin32介绍与编译使用_ev.mp4  [37.6 MB]
119.添加界面左边栏目_ev.mp4  [64.3 MB]
82.Qt udp单播实现消息发送_ev.mp4  [76.8 MB]
173.为什么录制的窗口是黑色的_ev.mp4  [24.9 MB]
35.Qt控件重绘与提升(二)_ev.mp4  [35.4 MB]
84.如何实现程序启动界面_ev.mp4  [32.1 MB]
33.QOpenGLWidget的使用技巧_ev.mp4  [41.2 MB]
70.项目应用:Qt父子线程通信_ev.mp4  [41.0 MB]
60.缩放动画的实现_ev.mp4  [86.6 MB]
8.C++内存泄露工具VLD的使用_ev.mp4  [50.3 MB]
61.控件平移效果的实现_ev.mp4  [30.6 MB]
77.QFileInfo获取文件详细信息_ev.mp4  [36.5 MB]
49.Qt事件介绍_ev.mp4  [57.3 MB]
104.ffmpeg sdk的介绍与使用_ev.mp4  [59.4 MB]
178.给DesktopRec创建系统托盘_ev.mp4  [65.0 MB]
105.实现视频剪辑功能_ev.mp4  [155.4 MB]
50.鼠标事件与窗口事件应用_ev.mp4  [34.5 MB]
117.标题栏拖拽功能实现_ev.mp4  [64.6 MB]
175.实时查找应用程序窗口和显示器桌面_ev.mp4  [40.5 MB]
142.obs为什么不适用ffmpeg命令行来录制_ev.mp4  [95.5 MB]
162.ffmpeg输出参数设置_ev.mp4  [28.8 MB]
9.Qt内存管理机制分析_ev.mp4  [51.9 MB]
5.Qt程序运行原理分析_ev.mp4  [14.8 MB]
55.Qt Charts项目概览_ev.mp4  [24.6 MB]
108.项目总结_ev.mp4  [40.0 MB]
44.加载第三方所有控件通用的qss_ev.mp4  [24.5 MB]
19.QLabel QLineEdit的使用_ev.mp4  [50.0 MB]
93.QtCreator自定义程序生成路径_ev.mp4  [11.3 MB]
22.单选按钮RadioButton_ev.mp4  [42.0 MB]
76.Qt读写ini文件_ev.mp4  [27.5 MB]
101.libvlc如何实现视频循环播放_ev.mp4  [38.0 MB]
136.obs初始化过程总结一_ev.mp4  [57.5 MB]
147.obs x264编码模块源码分析_ev.mp4  [33.6 MB]
149.音频设备初始化以及音频采集线程的创建_ev.mp4  [68.7 MB]
25.Plain text Edit  QTextEdit_ev.mp4  [97.9 MB]
31.列表控件List Widget的使用技巧_ev.mp4  [67.2 MB]
151.音频编码线程源码分析_ev.mp4  [72.5 MB]
65.Qt线程创建方式1_ev.mp4  [45.3 MB]
166.Qt自定义标题栏二:实现拖动、关闭、最小化_ev.mp4  [38.8 MB]
127.obs c vs2019工程介绍_ev.mp4  [22.1 MB]
99.如何获取视频的时间参数_ev.mp4  [53.7 MB]
129.obs main函数分析二_ev.mp4  [38.3 MB]
59.QChart绘制柱状图_ev.mp4  [58.6 MB]
26.水平竖直Scroll Bar_ev.mp4  [32.5 MB]
148.结束录制做了哪些操作_ev.mp4  [27.3 MB]
112.在MFC程序中怎么编译QOBJECT宏_ev.mp4  [63.1 MB]
152.DesktopRec需求说明与项目创建_ev.mp4  [41.5 MB]
128.obs main函数分析一_ev.mp4  [79.9 MB]
28.水平竖直滑动条 QSlider_ev.mp4  [34.6 MB]
66.Qt线程创建方式2_ev.mp4  [28.5 MB]
80.编写一个Tcp聊天程序_ev.mp4  [87.3 MB]
73.Qt打开文件及获取文件目录_ev.mp4  [36.3 MB]
98.视频声音调节与静音功能的实现_ev.mp4  [51.0 MB]
45.qrc rcc使用技巧_ev.mp4  [34.1 MB]
85.VS2017 Qt开发的软件如何给exe添加图标_ev.mp4  [8.3 MB]
156.obs封装类初始化功能实现二_ev.mp4  [45.4 MB]
83.udp应用:广播和单播_ev.mp4  [38.4 MB]
72.Qt创建线程的四种方式(3)、(4)_ev.mp4  [61.6 MB]
4.Qt工程结构讲解_ev.mp4  [19.8 MB]
187.课程总结_ev.mp4  [4.6 MB]
27.进度条Progress Bar_ev.mp4  [26.5 MB]
172.实现指定应用程序窗口进行录制_ev.mp4  [52.7 MB]
24.下拉框Combo Box_ev.mp4  [32.5 MB]
131.obs初始化之插件加载_ev.mp4  [39.8 MB]
146.点击开始录制按钮后发生了什么_ev.mp4  [80.8 MB]
52.事件过滤应用(二)_ev.mp4  [31.4 MB]
139.从录制按钮开始_ev.mp4  [50.3 MB]
75.QFile文本流与数据流_ev.mp4  [59.6 MB]
64.Qt多线程技术简介_ev.mp4  [6.2 MB]
63.如何显示gif动态图_ev.mp4  [17.6 MB]
62.实现控件透明渐变特效_ev.mp4  [52.5 MB]
57.如何在Widget上显示QChart_ev.mp4  [57.5 MB]
54.Qt基本绘图机制讲解_ev.mp4  [66.5 MB]
20.按钮QPushButton的详细介绍_ev.mp4  [53.4 MB]
145.显示器采集方式与源码概述_ev.mp4  [60.2 MB]
155.obs封装类初始化功能实现一_ev.mp4  [54.0 MB]
94.vlc简介与项目演示_ev.mp4  [31.5 MB]
87.写一个合理的软件退出窗口(一)_ev.mp4  [76.8 MB]
81.Qt UDP编程介绍_ev.mp4  [11.0 MB]
47.项目实战:实现电脑管家界面(二)_ev.mp4  [58.2 MB]
15.Qt日期时间相关类的使用方法_ev.mp4  [38.4 MB]
2.认识Qt_ev.mp4  [14.9 MB]
7.Qt moc元对象机制_ev.mp4  [46.1 MB]
122.obs源码下载与编译环境准备_ev.mp4  [48.9 MB]
182.封装配置文件解析类_ev.mp4  [33.3 MB]
177.解决桌面录制可能crash的bug_ev.mp4  [27.4 MB]
58.QChart绘制饼状图_ev.mp4  [43.5 MB]
14.QMap_ev.mp4  [38.1 MB]
114.项目总结_ev.mp4  [5.5 MB]
13.QList_ev.mp4  [28.9 MB]
113.解决MFC启动Qt界面却无法显示的问题_ev.mp4  [51.9 MB]

适合人群

  • C++开发者
  • Qt框架学习者

学习收获

掌握Qt框架基础
精通Qt框架进阶
提升实战开发能力

祝您学习愉快!

学有所成,前程似锦!