一、Qt概述与环境搭建

1.1 Qt框架简介

Qt是什么?说白了,它是一套跨平台的C++图形用户界面框架。我做了十几年嵌入式开发,Qt是我见过最「省心」的GUI框架——你写一套代码,它能跑在Windows、Linux、macOS,甚至Android和iOS上。

Qt不仅仅是画界面。它提供了完整的工具链:网络通信、数据库操作、多线程、XML解析、OpenGL渲染……嗯,基本上你开发桌面应用需要的功能,它都给你包圆了。

核心特点:

  • 跨平台:一次编写,到处编译。不是「一次编写到处调试」那种伪跨平台
  • 面向对象:信号与槽机制,比回调函数优雅太多
  • 性能优秀:底层是C++,跑起来比Java/Swing快一个量级
  • 社区活跃:遇到问题,StackOverflow上基本都有答案

1.2 Qt发展史

聊Qt的历史,得从1991年说起。当时挪威的Haavard Nord和Eirik Chambe-Eng两个程序员,想做一个跨平台的GUI框架。那时候Windows和Unix打得火热,他们觉得「为什么不能写一次代码,到处编译呢?」

1995年,Qt 1.0正式发布。名字里的「Q」是因为在Emacs里这个字母看起来最漂亮——你没看错,就是这么随性。

我印象最深的是2008年,诺基亚收购了Qt。那时候诺基亚还是手机霸主,想把Qt塞进塞班系统。结果大家都知道,诺基亚没落了,但Qt活了下来——2012年转手给Digia,2014年成立了独立的Qt公司。

现在Qt已经到了6.x版本。从Qt 4到Qt 5是一次大重构,Qt 6更是把底层渲染换成了RHI(抽象图形接口),性能又上了一个台阶。

版本 发布时间 重要变化
Qt 1.0 1995年 首个版本,支持X11和Windows
Qt 2.0 1999年 引入模板库,支持国际化
Qt 3.0 2001年 增加SQL模块,架构大改
Qt 4.0 2005年 信号与槽重写,引入QGraphicsView
Qt 5.0 2012年 模块化,支持C++11,QML成熟
Qt 6.0 2020年 RHI渲染,移除废弃模块,性能优化

1.3 Qt应用领域

Qt能做什么?我随便举几个例子:

  • 桌面软件:WPS Office、VirtualBox、Google Earth,底层都是Qt
  • 工业控制:PLC上位机、SCADA系统,Qt的稳定性在工业领域口碑很好
  • 汽车仪表盘:很多车厂的IVI系统用Qt做HMI,比如奔驰的MBUX
  • 医疗设备:CT机、超声诊断仪的界面,Qt的Medical模块专门干这个
  • 嵌入式设备:路由器、智能家居面板,Qt for MCU能跑在微控制器上

我个人最得意的一个项目,是用Qt给某工厂做了一套生产线监控系统。32寸触摸屏上实时显示几十台设备的运行状态,数据刷新频率100ms,Qt扛住了,一点不卡。

1.4 Qt开发环境搭建与配置

搭建环境是入门第一关。我见过太多新手卡在这一步——装了半天,一编译全是红字。别急,我带你一步步来。

1.4.1 选择编译器:MinGW vs MSVC

Windows上Qt支持两套编译器:

特性 MinGW MSVC
编译器 GCC(开源) Visual C++(微软)
调试器 GDB WinDbg / VS调试器
性能 一般 优化更好,尤其数学运算
兼容性 依赖MinGW运行时 依赖VC++运行库
推荐场景 开源项目、学习 商业项目、Windows专属

我的建议:如果你只是学习Qt,用MinGW就够了,安装简单,不用装Visual Studio。但如果你要做商业项目,尤其要调用Windows API或者用DirectX,那必须上MSVC。

⚠️ 避坑指南:我曾经在项目里混用了MinGW编译的库和MSVC编译的主程序,结果链接时报了一堆莫名其妙的符号错误。后来查了两天才发现——两个编译器生成的C++对象布局不一样,ABI不兼容。所以记住:整个项目统一用一种编译器。

1.4.2 安装步骤(Windows + MinGW)

  1. 下载Qt在线安装器:去官网qt.io,选「Online Installer」
  2. 选择组件:勾选Qt 6.x版本,展开后选「MinGW 64-bit」
  3. 安装路径:不要有中文和空格,比如 C:\Qt\6.5.0
  4. 配置环境变量:把 C:\Qt\6.5.0\mingw_64\bin 加到PATH里
  5. 验证安装:打开命令行,输入 qmake --version,看到版本号就对了

💡 小技巧:安装时别一股脑全选,Qt的组件很大(一个版本可能10GB+)。你只需要选:Qt核心模块、Qt Creator IDE、对应编译器的工具链。其他模块用到再装,省硬盘空间。

1.4.3 第一个Qt程序

装好了?来写个Hello World试试手。

// main.cpp
#include <QApplication>
#include <QLabel>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QLabel label("Hello, Qt!");
    label.resize(300, 200);
    label.show();

    return app.exec();
}

编译运行:

qmake -project    # 生成.pro文件
qmake             # 生成Makefile
mingw32-make      # 编译
./01_hello.exe    # 运行

看到窗口弹出来了吗?嗯,这就是Qt的魅力——几行代码,一个跨平台的窗口就出来了。

1.4.4 Qt Creator IDE

Qt Creator是官方IDE,我用了十年,越用越顺手。它有几个功能特别实用:

  • 设计模式:拖拽控件就能画界面,不用手写布局代码
  • 信号与槽编辑器:可视化连接控件事件
  • QML预览:写QML界面时实时看效果
  • 性能分析器:找内存泄漏、CPU瓶颈的好帮手

我个人习惯把Qt Creator的快捷键改成VS风格(工具→选项→环境→键盘方案)。如果你从VS转过来,这样上手更快。

知识体系总览

下面这张图,帮你理清本章的知识脉络:

Qt概述与环境搭建 Qt框架简介 跨平台 · 面向对象 · 高性能 Qt发展史 1991 → 1995 → 2008 → 2012 → 2020 应用领域 桌面 · 工业 · 汽车 · 医疗 · 嵌入式 开发环境搭建与配置 MinGW vs MSVC 安装与配置 第一个Qt程序 Qt Creator IDE 核心:一次编写,到处编译 选择合适编译器,统一工具链

这张图把本章内容串起来了。Qt框架是核心,发展史告诉你它从哪来,应用领域告诉你它能去哪,环境搭建则是你动手的第一步。四者缺一不可。

本章要点回顾:

  • Qt是跨平台C++ GUI框架,核心优势是一次编写、到处编译
  • 从1991年发展至今,Qt 6是最新版本,性能大幅提升
  • 应用覆盖桌面、工业、汽车、医疗、嵌入式等多个领域
  • Windows开发推荐MinGW(学习用)或MSVC(商业用)
  • 安装时按需选择组件,避免浪费硬盘空间
  • 第一个Qt程序只需几行代码,验证环境是否配置成功

环境搭好了,下一步就是真正动手写界面了。别急,先把今天的内容消化掉——尤其是编译器选择那部分,我当年可是吃过亏的。你想想看,如果一开始就选对工具链,后面能省多少折腾的时间?

可可精品资料库