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 for Windows」那种离线包,版本太旧。在线安装器能选最新版,还能自定义组件。

安装步骤很简单:

  1. 打开 qt-unified-windows-x64-online.exe(Linux/Mac同理)
  2. 登录Qt账号(没有就注册一个,免费的)
  3. 选择安装路径——我个人习惯装到 D:\Qt,别放C盘
  4. 选择组件:

这里我重点说一下组件选择:

  • 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源码
小技巧:安装时选「Custom installation」,别选「Default」。默认只装MinGW,不装MSVC。我遇到过好几次,同事装完发现没有MSVC编译器,又得重装。

安装完成后,打开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发展史 1991年:挪威初创 1995年:Qt 1.0发布 2005年:Qt 4.0重构 2012年:Qt 5.0 2020年:Qt 6.0 应用领域 桌面应用(WPS、VirtualBox) 嵌入式系统(汽车仪表) 工业控制(SCADA) 跨平台工具(Telegram) 科学计算(数据可视化) 环境搭建 下载在线安装器 选择Qt 6.x版本 配置MinGW/MSVC 检查Kits设置 第一个Qt程序 创建Widgets项目 使用QLabel显示文本 设置窗口标题和大小

这张图把本章内容串起来了。你从左上角开始看:先了解Qt从哪来(发展史),再看它能做什么(应用领域),然后动手搭环境(安装配置),最后写个程序验证(第一个程序)。

嗯,这个逻辑链条很清晰。后面每一章,我都会用类似的图帮你梳理知识结构。

我的建议:学Qt别急着看高级特性。先把环境搭好,跑通一个Hello World,找到感觉再说。我见过太多人,装环境就卡了两天,最后放弃了。其实没那么复杂,按步骤来就行。

好,这一章就到这儿。你先把环境搭好,跑通第一个程序。下一章咱们聊聊Qt的核心机制——信号与槽,这可是Qt的灵魂。


可可精品资料库