1、Qt概述与环境搭建:Qt发展史、Qt应用领域、Qt Creator安装与配置、第一个Qt程序
1.1 Qt发展史:从挪威小团队到跨平台霸主
Qt的故事,得从1991年说起。
那时候,两位挪威程序员——Haavard Nord和Eirik Chambe-Eng,在奥斯陆的一家小公司里捣鼓一个跨平台图形框架。说白了,他们想让同一套代码,能在Windows、Unix、Mac上都能跑起来。这在当时简直是天方夜谭。
我记得我第一次接触Qt,是2008年做嵌入式项目。那时候Qt 4.2刚出来,文档还不全,调试起来那叫一个痛苦。但说实话,它的信号与槽机制,让我眼前一亮——这玩意儿比MFC的消息映射优雅太多了。
Qt的发展有几个关键节点:
- 1995年:Qt 1.0发布,支持Unix和Windows。当时还叫「Qt」,Q代表「漂亮」,t代表「工具箱」。
- 2005年:Qt 4.0发布,架构大重构。引入了QGraphicsView框架,做2D图形方便多了。
- 2008年:诺基亚收购Qt,开始主攻移动端。嗯,后来诺基亚自己倒了,但Qt活了下来。
- 2012年:Digia接手Qt,推出Qt 5.0。支持C++11,性能提升明显。
- 2020年:Qt 6.0发布,全面拥抱C++17,模块化更彻底。
你想想看,一个框架能活30多年,说明它确实有两把刷子。
1.2 Qt应用领域:你能想到的,它基本都能做
Qt能做什么?我简单列几个方向:
| 领域 | 典型应用 | 我见过的坑 |
|---|---|---|
| 桌面应用 | WPS Office、VirtualBox、Autodesk Maya | WPS早期用Qt做的界面,后来改了一部分,但核心还是Qt |
| 嵌入式系统 | 汽车仪表盘、医疗设备、工业HMI | 我曾经在ARM Cortex-A8上跑Qt 5.9,内存只有256MB,优化了好久才跑流畅 |
| 工业控制 | PLC上位机、SCADA系统、数控机床 | 工控行业对稳定性要求极高,Qt的QML做动画效果很爽,但别滥用 |
| 跨平台工具 | Qt Creator、Telegram Desktop、OBS Studio | Telegram桌面版就是Qt写的,跨平台体验很一致 |
| 科学计算 | 数据可视化、仿真软件、CAD工具 | Qt Charts和Qt Data Visualization库,做科研图表够用了 |
说白了,只要你想写一个带界面的程序,Qt基本都能搞定。而且它支持Windows、Linux、macOS、Android、iOS、嵌入式Linux……你想想看,一套代码到处跑,省多少事。
1.3 Qt Creator安装与配置:手把手教你搭环境
好,咱们开始动手。安装Qt Creator,我建议你直接去官网下载在线安装包。
安装步骤很简单:
- 打开
qt-unified-windows-x64-online.exe(Linux/Mac同理) - 登录Qt账号(没有就注册一个,免费的)
- 选择安装路径——我个人习惯装到
D:\Qt,别放C盘 - 选择组件:
这里我重点说一下组件选择:
- Qt 6.x.x:必选。选一个稳定版就行,比如6.5.3
- MinGW 64-bit:Windows下推荐用MinGW,省事
- MSVC 2022 64-bit:如果你用Visual Studio,就选这个
- Qt Creator:IDE,必选
- Qt Charts、Qt Data Visualization:做图表和3D可视化用,按需选
- Sources:建议勾上,调试时能看Qt源码
安装完成后,打开Qt Creator,配置一下编译器:
- 菜单栏 → 工具 → 选项 → Kits → 编译器
- 检查MinGW或MSVC是否自动检测到
- 如果没检测到,手动添加路径:
C:\Qt\Tools\mingw1120_64\bin\g++.exe
嗯,这里要注意:Qt Creator会自动检测Qt版本和编译器,但有时候会抽风。我建议你手动检查一下「Kits」页面,确保有一个可用的Kit(比如「Desktop Qt 6.5.3 MinGW 64-bit」)。
1.4 第一个Qt程序:Hello World,但不止Hello World
环境搭好了,咱们写个程序试试。
打开Qt Creator,点击「New Project」→「Application (Qt)」→「Qt Widgets Application」。
项目名称就叫 HelloQt,路径随便选。一路下一步,直到完成。
你会看到自动生成了几个文件:
main.cpp:入口文件mainwindow.h/mainwindow.cpp:主窗口类HelloQt.pro:项目文件(qmake用)
咱们先不改代码,直接点左下角的绿色三角(运行按钮)。
如果一切正常,你会看到一个空窗口弹出来。恭喜你,第一个Qt程序跑起来了!
但光跑起来不够,咱们加点料。打开 mainwindow.cpp,在构造函数里加一行:
#include "mainwindow.h"
#include <QLabel>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
// 创建一个标签,显示Hello World
QLabel *label = new QLabel("Hello, Qt 6!", this);
label->setAlignment(Qt::AlignCenter);
setCentralWidget(label);
// 设置窗口标题和大小
setWindowTitle("我的第一个Qt程序");
resize(400, 300);
}
再运行一次,窗口中间应该显示「Hello, Qt 6!」了。
QLabel:显示文本或图片的控件setCentralWidget():把控件设为主窗口的中心部件resize():设置窗口大小setWindowTitle():设置窗口标题
你可能会问:为什么用 QLabel 而不是直接画文字?
嗯,这个问题问得好。Qt里所有可见元素都是「控件」(Widget)。QLabel就是一个控件,它封装了文本渲染、字体设置、对齐方式等。你想想看,如果每个文字都要自己画,那得写多少代码?
我曾经在项目里犯过一个低级错误:在 paintEvent 里直接画文字,结果每次窗口重绘都重新计算位置,卡得要死。后来改用QLabel,一行代码搞定。所以,能用现成控件就别自己造轮子。
1.5 本章知识体系
下面这张图,帮你理清本章的核心脉络:
这张图把本章内容串起来了。你从左上角开始看:先了解Qt从哪来(发展史),再看它能做什么(应用领域),然后动手搭环境(安装配置),最后写个程序验证(第一个程序)。
嗯,这个逻辑链条很清晰。后面每一章,我都会用类似的图帮你梳理知识结构。
好,这一章就到这儿。你先把环境搭好,跑通第一个程序。下一章咱们聊聊Qt的核心机制——信号与槽,这可是Qt的灵魂。
可可精品资料库