一、Qt简介与环境搭建
大家好,我是你们这门课的老师。今天咱们聊聊Qt——这个在嵌入式、桌面和移动开发领域都占有一席之地的框架。说实话,我最早接触Qt是在做工业控制项目的时候,那时候被它的跨平台能力惊艳到了。你想想看,一套代码能在Windows、Linux、甚至嵌入式板子上跑,这得多省事?
1.1 Qt发展史:从奇趣科技到诺基亚,再到如今
Qt的故事得从1991年说起。当时两位挪威程序员——Haavard Nord和Eirik Chambe-Eng,在开发一个跨平台的图形界面框架。嗯,就是Qt的前身。1995年,他们正式发布了Qt 1.0版本。
我个人觉得,Qt发展史上几个关键节点特别值得记住:
- 1995年:Qt 1.0发布,支持Unix和Windows
- 2005年:Qt 4.0发布,引入了强大的信号与槽机制
- 2008年:诺基亚收购Qt,开始主攻移动端
- 2012年:Digia接手Qt,Qt 5.0发布
- 2020年:Qt 6.0发布,全面拥抱C++17和现代图形API
我在项目中遇到过不少用Qt 4的老项目,迁移到Qt 5时踩了不少坑。说白了,版本升级不是小事,但Qt的向后兼容性做得还算不错。
1.2 Qt应用领域:嵌入式、桌面、移动
Qt能干什么?我简单列几个场景:
| 领域 | 典型应用 | 我的经验 |
|---|---|---|
| 嵌入式 | 车载系统、工业HMI、医疗设备 | 做过一个车载仪表盘,Qt Quick渲染流畅 |
| 桌面 | WPS Office、VirtualBox、Autodesk Maya | WPS就是Qt写的,你想想看 |
| 移动 | 跨平台App、即时通讯工具 | 移动端性能不如原生,但开发效率高 |
你可能会问:为什么选Qt而不是别的?我个人习惯是:如果项目需要跨平台、界面复杂、对性能有要求,Qt是首选。尤其是嵌入式领域,Qt的轻量级和硬件加速能力,真的没话说。
核心知识点:Qt不是只能做界面。它的网络模块、数据库模块、XML处理、多线程支持,都是工业级的。说白了,Qt是一个完整的应用开发框架,不只是画几个按钮。
1.3 Qt Creator安装与配置
好,咱们动手吧。安装Qt Creator其实很简单,但有几个坑我得提前说。
第一步:下载安装包
去Qt官网下载在线安装器。我建议你选开源版本,除非公司买了商业许可。安装时注意:
- 选择组件时,勾选你需要的Qt版本(比如Qt 6.5)
- 勾选Qt Creator IDE
- 勾选对应的编译器(MinGW或MSVC)
注意:我曾经因为没勾选MinGW,结果编译时找不到编译器,折腾了半天。所以安装时一定要看清楚组件列表。
第二步:配置编译器
安装完成后,打开Qt Creator,进入「工具」→「选项」→「Kits」→「编译器」。检查一下编译器是否自动检测到了。如果没有,手动添加路径。
我个人习惯用MinGW,因为它是开源的,而且和Qt配合得很好。MSVC的话,如果你在Windows上做Windows专属开发,也可以考虑。
第三步:验证安装
新建一个项目,选「Qt Widgets Application」,一路默认。如果能编译通过,恭喜你,环境搭好了。
1.4 第一个Qt程序:Hello World
终于到了写代码的环节。咱们写一个最简单的Hello World,感受一下Qt的编程风格。
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel label("Hello, Qt!");
label.show();
return app.exec();
}
这段代码干了什么?
QApplication:每个Qt程序都需要一个应用对象,管理事件循环QLabel:一个标签控件,显示文本label.show():显示窗口app.exec():进入事件循环,等待用户操作
你编译运行后,会看到一个窗口,上面写着「Hello, Qt!」。嗯,就这么简单。
小技巧:如果你用的是Qt Creator,可以直接点左下角的绿色三角运行。快捷键是Ctrl+R(Windows/Linux)或Cmd+R(Mac)。
我第一次写Qt程序时,觉得这跟MFC比简直太清爽了。没有复杂的消息映射,没有繁琐的窗口注册。说白了,Qt把底层细节都封装好了,你只需要关注业务逻辑。
知识体系总览
为了让你对本章内容有个整体认识,我画了一张图:
这张图把本章的知识点串起来了。你看到没?从发展史到应用领域,再到环境搭建和第一个程序,是一条完整的链路。我个人觉得,学Qt不能只盯着代码,得先理解它「从哪里来、能干什么」,这样学起来才有方向感。
本章小结:我们了解了Qt的发展历程、应用领域,完成了开发环境搭建,并成功运行了第一个Qt程序。这些基础打牢了,后面学信号与槽、布局管理、网络通信才会更顺畅。
可可精品资料库