一、前言
如果你是一名 C++ 程序员,想做跨平台的桌面应用、带 GUI 的工具、或者嵌入式设备上的界面,Qt 几乎是绕不开的选择。
Qt 本身不是一个新语言,而是基于 C++ 的一个库/框架。它提供了完整的 GUI 工具包,以及网络、数据库、绘图、多线程等模块,让一份代码可以同时跑在 Windows、macOS、Linux 上。
但很多新手第一次接触 Qt 时,会被这些绊住:
不知道去哪下载 SDK
装完之后不知道从哪开始
出了问题不会查文档
看代码像看天书
这篇文章就从零开始,带你走完整个流程:下载 → 安装 → 学会看文档 → 写出第一个 Label 的 Hello World。
二、下载 Qt SDK
这里要先说一个坑:Qt 从 5.15 版本之后,官方取消了离线安装包的下载。也就是说我们没法像以前那样,直接下一个几百 MB 的 exe 双击装完。现在必须先下载 Qt 官方的在线下载器(Online Installer),再用它去拉取 SDK 本体。
不过官方下载器服务器在国外,直接从官网下可能很慢甚至下不动。国内推荐走镜像源,速度会快很多:
清华镜像源:Index of /qt/official_releases/online_installers/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
阿里镜像源:qt-official_releases-online_installers安装包下载-开源镜像站-阿里云
这里以清华镜像为例
进到镜像站后,找到online_installers目录,里面按系统(Windows / macOS / Linux)列出了各个版本的官方下载器,挑自己对应的那个下就行。
官方下载器地址(网速好可以走这个):Index of /official_releases/online_installers
1. 注册 Qt 账号
不管走哪个渠道,下载前都得有一个 Qt 账号(免费注册)。后面维护、安装、更新都要用到。
2. 选择对应系统的下载器
根据自己的系统选:
Windows:
qt-online-installer-windows-x64.exemacOS:
qt-online-installer-mac.dmgLinux:
qt-online-installer-linux-x64.run
三、安装 Qt
1. 运行安装器
双击 exe,第一次会让你再登录一次。登录后进入组件选择界面。
这里用上述注册的Qt账号登录即可,不多展示。
建议:不要直接启动安装器,可以在cmd中进行启动,切换安装源至国内镜像站,下载速度更快,这里以阿里云镜像为例:
我们在cmd中输入对应指令,注意此处指令不一定与我相同,该指令含义为.\为运行,后面无需空格紧跟所下载exe文件的路径(重点此处需要根据自己情况进行调整),随后空格输入--mirror https://mirrors.aliyun.com/qt切换下载源到阿里镜像。 至于如何调出cmd,win+R,输入cmd回车即可。
2. 安装选项
Qt安装目录默认是C:\Qt,建议保持默认(路径有空格后面会出怪问题)。空间预留20~30 GB比较稳。
这里包的选择可以选择两个:桌面开发和自定义安装,桌面开发可以帮我们自动勾选桌面开发的必备工具,自定义方便我们进行Qt版本的选择。
3. 选择组件(这一步最关键)
进入组件选择页面后,列表会分两大块:
Qt—— 核心框架、各个模块、源码
Developer and Designer Tools—— 开发工具、IDE、编译器
Developer and Designer Tools部分默认勾选Qt Creator和CMake,基本不用管。Qt这块才是重点——展开某个 Qt 版本(比如Qt 6.6.x),会冒出一长串子选项。下面逐个解释。
A. 编译器套件(必选,且 MSVC / MinGW 二选一)
| 选项 | 含义 | 是否必选 |
|---|---|---|
| MSVC 2019/2022 64-bit | 微软 Visual C++ 编译器套件。本机需已装对应版本的 Visual Studio | 跟 MinGW 二选一 |
| MinGW 11.2.0 / 13.1.0 64-bit | GCC 在 Windows 上的移植版,自带编译器,不用装 VS,新手最省事 | 跟 MSVC 二选一 |
| Android | 给 Android 设备开发用 | 桌面用不到 |
| iOS | 给 iOS / macOS 开发用 | Windows 装不了 |
| WebAssembly | 让 Qt 程序跑在浏览器里 | 按需 |
⚠️MSVC 和 MinGW 不要同时勾选,工具链会冲突。如果你选了 MSVC,还要在 Developer and Designer Tools 里再装一个 MinGW,因为部分工具链会用到。
B. Qt 模块(按需勾选,可多选)
| 选项 | 作用 | 是否必选 |
|---|---|---|
| Sources | Qt 源码,F12 能直接跳进去看实现 | 强烈建议勾选 |
| Qt 5 Compatibility Module | Qt 5 → Qt 6 的兼容层 | 老项目迁移用,新项目不用 |
| Qt Charts | 二维图表(折线、柱状、饼图) | 按需 |
| Qt Data Visualization | 3D 图表(三维柱状、曲面、热力图) | 按需 |
| Qt 3D | 3D 场景与渲染 | 游戏/3D 应用 |
| Qt Multimedia | 音视频播放、摄像头调用 | 媒体类应用 |
| Qt WebEngine | 嵌入 Chromium 内核的浏览器 | 网页嵌入类应用 |
| Qt Network Authorization | OAuth 等网络授权协议 | 按需 |
| Qt PDF | PDF 文档渲染 | 按需 |
| Qt Positioning | GPS / 定位 | 移动端 |
| Qt Sensors | 传感器(陀螺仪、加速度计等) | 移动端 / IoT |
| Qt Serial Bus | CAN、ModBus 等工业总线 | 工控 / 嵌入式 |
| Qt Serial Port | 普通串口通信 | 工控 / 嵌入式 |
| Qt Speech | 文字转语音(TTS) | 按需 |
| Qt Virtual Keyboard | 屏幕虚拟键盘 | 嵌入式 / 触屏 |
| Qt Lottie Animation | Lottie 动画播放 | 按需 |
| Qt Remote Objects | 跨进程 / 跨设备对象通信 | 分布式场景 |
| Qt Image Formats | 额外图片格式(TIFF、MNG 等) | 按需 |
| Qt SQL Drivers | 数据库驱动(SQLite 默认带,MySQL/PSQL/Others 按需勾) | 数据库应用 |
C. 新手最小必选套餐
如果你只是想先把第一个 Hello World 跑起来,按下面这套勾就够了:
这里以Qt6.8.3为例
这里先搭起来大致骨架,后面用到了某些其余部件可以再通过 MaintenanceTool 补装。
💡新手建议:选MinGW 路线,不用再单独装 Visual Studio,省一堆麻烦。等你熟悉了想用 MSVC 再切也行。
4. 等待安装
下载 2~5 GB 不等,看网速。中间别关窗口。
四、第一次打开 Qt Creator
装完在开始菜单找到Qt Creator打开。
欢迎界面你会看到:
Examples(官方示例)
Tutorials(教程)
Create Project(创建项目)
先别急着创建项目——先学会查文档。
五、学会使用 Qt 说明文档(新手最重要的一步)
Qt 的官方文档是它做得最良心的地方,没有之一。新手和老手的差距,很大程度上就在"会不会查文档"。
1. 三种文档入口
入口一:Qt Creator 内置帮助(最常用)
在代码编辑器里,把光标放到某个类(比如QLabel)上,按F1,右侧或下方会自动弹出这个类的完整文档。
入口二:在线文档
访问 https://doc.qt.io/qt-6/ ,搜类名、搜功能、查版本差异都很好用。
入口三:本地 Qt Assistant
2. 文档怎么读(以 QLabel 为例)
打开 QLabel 的文档页面,从上到下你会看到这些区块:
| 区块 | 看什么 |
|---|---|
| Detailed Description | 这个类是干嘛的、典型用法 |
| Public Types / Public Functions | 它能干什么(公开方法) |
| Properties | 它的属性,比如 text、alignment、pixmap |
| Signals / Public Slots | 能发什么信号、能接收什么槽 |
| Inherits | 继承自谁,能用哪些父类功能 |
| Examples | 官方示例代码 |
| Member List | 完整成员列表 |
3. 看示例代码
每个类的文档底部都有Examples链接,点进去就是官方给出的实际用法片段,比自己瞎试快十倍。
4. 查继承关系
类名旁边会写Inherits: QFrame → QWidget → QObject。这告诉你:
QLabel 能用 QFrame 的功能(边框、形状)
能用 QWidget 的功能(大小、位置、显示/隐藏)
最底层是 QObject(信号槽、对象树都在这)
学会查文档,比记住所有 API 重要一万倍。
六、实现第一个 Label 的 Hello World
理论讲完了,现在动手。
1. 创建项目
打开 Qt Creator →File → New File or Project
选Application → Qt Widgets Application
项目名填
HelloQt,路径选个不带中文和空格的目录Build system 选qmake(新手友好)或CMake(更主流)
一直 Next,最后 Finish
2. 项目结构
HelloQt/ ├── HelloQt.pro # 项目文件(qmake) ├── main.cpp # 程序入口 ├── mainwindow.h ├── mainwindow.cpp ├── mainwindow.ui # 界面文件(XML 描述) └── mainwindow.ui.h
3. 用纯代码方式加一个 Label
新手阶段建议先用代码写一次,别直接拖控件。这样能看清底层到底发生了什么。
打开mainwindow.cpp,改成下面这样:
#include "mainwindow.h" #include "ui_mainwindow.h" // 头文件包含 #include <QLabel> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); // 新建Label对象 QLabel *label = new QLabel(this); // 设置Label文本 label->setText("hello world!"); } MainWindow::~MainWindow() { delete ui; }4.用图形界面加一个Label
除了纯代码的方式,我们可以直接通过图像操作进行Label添加:
我们双击.ui文件或者点击设计会进入一下界面:
这里我们可以在左侧选择需要添加的控件,比如我们选择Label并且拖动到指定位置就可以实现第一个 hello world程序的实现了!
5. 编译运行
按Ctrl + R(或者左下角绿色三角按钮),第一次会编译 1~2 分钟。
编译成功会弹出一个窗口,中间显示 hello world!这几个字。
恭喜,第一个 Qt 程序跑起来了。
七、新手常见踩坑
1. 编译报错 "No rule to make target..."
删掉 build 目录重新编译
或者菜单
Build → Clean All Project,再Rebuild
2. 窗口不显示
确认
w.show()调用了main 函数里必须是
QApplication(GUI 程序用这个),不能用QCoreApplication
3. 中文乱码
Qt 5 默认按系统编码,Qt 6 默认 UTF-8
源文件保存为 UTF-8
或者用
QString::fromLocal8Bit("中文")
4. 链接报错 "undefined reference to vtable for..."
类里如果有
Q_OBJECT宏,必须重新 qmake:Build → Run qmake,再重新构建
八、总结
走完这条路,你应该:
✅ 装好了 Qt + Qt Creator
✅ 知道按 F1 看文档、查示例
✅ 写出了第一个带 Label 的窗口