一、Qt概述与环境搭建

各位同学好,我是老K。今天咱们聊聊Qt的来龙去脉,以及怎么把开发环境搭起来。说实话,我接触Qt快十年了,从Qt 4.6一直用到现在的Qt 6,踩过的坑真不少。这一章,我把自己的经验揉碎了讲给你听。

1.1 Qt发展史:从挪威小公司到跨平台霸主

Qt的故事,得从1991年说起。两个挪威人——Haavard Nord和Eirik Chambe-Eng,在奥斯陆创立了Trolltech公司。他们想做一套跨平台的GUI库,让开发者写一次代码,就能在Windows、Linux、macOS上跑起来。

我刚开始学Qt时,翻过一本老书,上面写着Qt 2.0的API。说实话,那时候的接口设计跟现在差别很大。但核心思想没变:信号与槽、元对象系统、事件循环。这些概念,到今天依然是Qt的基石。

几个关键节点:

  • 1995年:Qt 1.0发布,支持Unix和Windows
  • 2005年:Qt 4.0发布,彻底重构了架构,引入QGraphicsView等新模块
  • 2008年:诺基亚收购Trolltech,Qt进入移动时代
  • 2012年:Digia接手Qt,后来成立了Qt Company
  • 2014年:Qt 5.0发布,全面支持C++11,引入QML
  • 2020年:Qt 6.0发布,这是又一次重大重构

我个人觉得,Qt能活到现在,靠的是两点:一是跨平台能力真的强,二是商业策略灵活。开源版和商业版并行,让个人开发者和小公司也能用得起。

1.2 Qt应用领域:你能想到的,它都能做

很多人以为Qt只能做桌面软件。其实不然。我这些年见过的Qt项目,覆盖了这些领域:

领域 典型应用 我见过的案例
桌面应用 WPS Office、VirtualBox、VLC 某银行内部管理系统,全用Qt写的
嵌入式 汽车仪表盘、医疗设备、工控HMI 某款心电图仪,界面就是Qt做的
工业自动化 PLC编程软件、SCADA系统 西门子某款上位机软件,底层是Qt
影视动画 Maya、Blender(部分模块) 某动画工作室的渲染管理工具
汽车电子 IVI系统、数字仪表、HUD 某新能源车的仪表盘,Qt for MCU

说白了,只要是需要图形界面的C++项目,Qt都能插一脚。我甚至见过有人用Qt写游戏编辑器——虽然性能不如Unity,但胜在开发快。

1.3 Qt 6新特性:这次升级有点猛

Qt 6不是Qt 5的小修小补,而是底层架构的大改。我升级项目时,花了整整两周才把代码迁移完。但改完之后,真香。

几个核心变化:

  • 模块精简:Qt 5有50多个模块,Qt 6砍到20多个。比如Qt WebEngine被拆成Qt WebEngineWidgets和Qt WebEngineQuick
  • QML性能提升:Qt 6的QML引擎重写了,渲染速度比Qt 5快30%以上。我测试过一个动画密集的界面,帧率从45fps飙到60fps
  • 图形架构升级:全面支持Vulkan、Metal、Direct3D 12。OpenGL不再是唯一选择
  • C++17强制要求:Qt 6必须用C++17编译。这意味着你可以用std::optional、std::variant这些新特性
  • Qt Quick 3D:内置3D渲染引擎,不用再依赖Qt 3D模块了

避坑指南:我曾经把一个Qt 5.15的项目直接拉到Qt 6.2编译,结果报了几百个错误。主要原因是Qt 6移除了很多废弃API,比如QTextCodec、QRegExp。建议先跑一下Qt官方的迁移工具,再手动改代码。

1.4 MinGW与MSVC编译器选择:别选错了

这个问题,我每年都会被问十几次。说白了,就是Windows上两个编译器阵营的选择题。

对比项 MinGW MSVC
编译器 GCC的Windows移植版 微软Visual C++
调试器 GDB MSVC调试器
STL实现 libstdc++ 微软STL
性能 中等 优化更好,尤其数学运算
兼容性 与Linux GCC一致 与Windows API深度集成
调试体验 GDB功能较弱 VS调试器功能强大

我的建议:

  • 如果你只是学习Qt,或者做小工具,用MinGW就够了。安装简单,不用装Visual Studio
  • 如果你做商业项目,尤其是需要调用Windows API、或者做性能优化的,用MSVC。调试体验好太多
  • 如果你做跨平台开发,建议MinGW。这样代码在Linux上也能用GCC编译

注意:MinGW和MSVC编译出来的二进制文件不能混用。你如果用MinGW编译了动态库,调用方也必须用MinGW。否则链接时会报一堆莫名其妙的错误。我当年在这个问题上浪费了两天。

1.5 Qt Creator安装与配置:手把手教你

安装Qt Creator其实不难,但有几个细节要注意。我按步骤说:

  1. 下载安装包:去Qt官网下载在线安装器。别下离线包,太大了,而且更新麻烦
  2. 选择组件:安装时,至少勾选这几项:
    • Qt 6.x(选最新稳定版)
    • Qt Creator IDE
    • MinGW或MSVC编译器(根据上一步的选择)
    • Qt Charts、Qt Data Visualization等常用模块
  3. 配置编译器:安装完后,打开Qt Creator,进入「工具」→「选项」→「Kits」。检查编译器、调试器、Qt版本是否自动识别。如果没识别,手动添加路径
  4. 测试环境:新建一个Qt Widgets Application,编译运行。如果能看到一个空白窗口,说明环境搭好了

小技巧:我习惯在Qt Creator里设置「构建目录」为build-项目名-编译器名。这样不同编译器的构建结果不会混在一起。比如build-MyApp-MinGW和build-MyApp-MSVC。

知识体系总览

下面这张图,把本章的核心知识点串起来了。你一看就明白Qt的来龙去脉和工具链关系。

Qt概述与环境搭建 · 知识体系 Qt发展史 应用领域 Qt 6新特性 编译器选择 安装与配置 1991 Trolltech创立 2008 诺基亚收购 2020 Qt 6发布 桌面应用 嵌入式/工控 汽车电子 模块精简 QML性能提升 C++17强制 MinGW (GCC) MSVC (Visual C++) 调试体验对比 核心:跨平台能力 + 信号与槽机制 + 模块化架构

嗯,这一章的内容就这些。Qt的历史、应用场景、新特性、编译器选择、环境搭建,我都讲透了。你按我说的步骤装好环境,下一章咱们就开始写第一个Qt程序。

可可精品资料库