1、Qt概述与环境搭建:Qt框架简介、Qt发展史、Qt Creator安装与配置、第一个Qt程序(Hello World)

1.1 Qt框架简介——它到底是什么?

Qt 是一个跨平台的 C++ 应用程序开发框架。说白了,就是一套写好的工具库,帮你快速做出带界面的软件。

我刚开始接触 Qt 时,最直观的感受是:写界面居然可以这么爽?不用像 MFC 那样跟一堆宏和消息映射死磕,也不用像 Win32 API 那样手动处理窗口过程。Qt 把底层细节都封装好了,你只需要关心业务逻辑。

Qt 的核心价值在于「一次编写,到处编译」。你写一套代码,可以在 Windows、macOS、Linux、Android、iOS 甚至嵌入式设备上跑。我在项目中遇到过客户突然要求从 Windows 迁移到 Linux 的情况,Qt 项目几乎没改代码就完成了移植——这种体验,用过就回不去了。

Qt 的三大核心模块:

  • QtCore:非 GUI 功能,包括事件循环、线程、文件、正则等基础组件
  • QtGui:窗口系统、事件处理、2D 图形、字体、图像等 GUI 基础
  • QtWidgets:基于控件的桌面 UI 组件,按钮、文本框、表格等

1.2 Qt 发展史——从挪威小公司到行业标配

Qt 的故事要从 1991 年说起。当时挪威的两位程序员 Haavard Nord 和 Eirik Chambe-Eng 在开发一个跨平台的文字处理软件,发现每次换平台都要重写界面代码,太痛苦了。于是他们决定自己写一套跨平台 GUI 库——这就是 Qt 的雏形。

1995 年,Qt 正式发布 1.0 版本。我记得当时它最惊艳的地方是「信号与槽」机制,这在 C++ 世界里是独一份的创新。传统 GUI 框架用回调函数,Qt 用信号与槽,代码可读性和维护性直接上了一个台阶。

几个关键时间节点:

年份 事件
1991 Haavard 和 Eirik 开始开发 Qt
1995 Qt 1.0 发布
2008 诺基亚收购 Qt,推出 Qt 4.5(LGPL 许可)
2012 Digia 收购 Qt,继续商业运营
2014 Qt 5.3 发布,全面支持移动端
2020 Qt 6 发布,架构大重构

你想想看,一个框架能活 30 多年,还在持续更新,这本身就说明了很多问题。Qt 6 是目前的最新大版本,性能更好,对 C++17/20 的支持也更完善。

1.3 Qt Creator 安装与配置——手把手带你搞定

工欲善其事,必先利其器。我个人习惯用 Qt Creator 作为 IDE,它和 Qt 的集成度最高,开箱即用。

安装步骤:

  1. 打开 Qt 官网下载页面,选择「Qt Online Installer」
  2. 运行安装程序,登录或注册 Qt 账户(免费)
  3. 选择安装路径——我建议不要用中文路径,避免一些奇怪的编码问题
  4. 选择组件时,至少勾选:
    • Qt 6.x 版本(如 6.5.3)下的 MinGW 或 MSVC 编译器
    • Qt Creator IDE
    • Qt 6.x 下的「Sources」组件(方便调试时看源码)
  5. 点击下一步,等待下载安装(大概 10-20 分钟,看网速)

小技巧: 如果你硬盘空间充足,建议把 Qt 5.15 也装上。有些老项目还在用 Qt 5,两个版本并存能应对更多场景。我在公司就遇到过客户要求用 Qt 5.12 的情况,幸好电脑上还留着旧版本。

配置 Qt Creator:

安装完成后,打开 Qt Creator,进入「工具」→「选项」→「Kits」页面。确认编译器、Qt 版本、调试器都已自动检测到。如果没检测到,手动添加一下路径。

注意: 如果你用的是 Windows,建议安装「Windows 10 SDK」和「Debugging Tools for Windows」,否则调试功能可能无法正常使用。我曾经因为没装调试工具,花了一下午排查一个空指针问题,最后发现是调试器没配好——嗯,这种坑踩过一次就够了。

1.4 第一个 Qt 程序——Hello World

理论说再多,不如动手写一行代码。我们来创建第一个 Qt 程序。

步骤:

  1. 打开 Qt Creator,点击「新建项目」
  2. 选择「Application (Qt)」→「Qt Widgets Application」
  3. 项目名称填 HelloWorld,路径选一个你记得住的位置
  4. 构建系统选「CMake」(Qt 6 推荐)或「qmake」
  5. 一路默认,点击完成

Qt Creator 会自动生成几个文件。我们打开 main.cpp,把代码改成这样:

#include <QApplication>
#include <QLabel>

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

    QLabel label("Hello, Qt World!");
    label.resize(300, 200);
    label.setWindowTitle("我的第一个Qt程序");
    label.show();

    return app.exec();
}

代码很简单,我来解释一下:

  • QApplication:每个 Qt GUI 程序都需要一个,它管理事件循环和全局设置
  • QLabel:一个显示文本的控件,这里我们让它显示 "Hello, Qt World!"
  • resize():设置窗口大小,宽 300 像素,高 200 像素
  • setWindowTitle():设置窗口标题
  • show():显示窗口——不调用这个,窗口是看不见的
  • app.exec():进入事件循环,程序开始运行,直到用户关闭窗口

点击左下角的绿色三角按钮(或按 Ctrl+R)运行。你会看到一个窗口弹出来,上面写着 "Hello, Qt World!"。

避坑指南: 如果你运行时提示「无法找到入口」或缺少 DLL,通常是环境变量没配好。把 Qt 的 bin 目录(比如 C:\Qt\6.5.3\mingw_64\bin)添加到系统 PATH 中,重启 Qt Creator 就好了。我曾经在给学员演示时翻过这个车,场面一度很尴尬……

嗯,到这里,你的第一个 Qt 程序就跑起来了。虽然只是显示一行文字,但背后的框架机制已经跑通了——事件循环、窗口系统、控件渲染,这些基础组件都在默默工作。

从下一章开始,我们会深入 Qt 的信号与槽机制,这是 Qt 最核心、最独特的设计。准备好了吗?