一、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其实不难,但有几个细节要注意。我按步骤说:
- 下载安装包:去Qt官网下载在线安装器。别下离线包,太大了,而且更新麻烦
- 选择组件:安装时,至少勾选这几项:
- Qt 6.x(选最新稳定版)
- Qt Creator IDE
- MinGW或MSVC编译器(根据上一步的选择)
- Qt Charts、Qt Data Visualization等常用模块
- 配置编译器:安装完后,打开Qt Creator,进入「工具」→「选项」→「Kits」。检查编译器、调试器、Qt版本是否自动识别。如果没识别,手动添加路径
- 测试环境:新建一个Qt Widgets Application,编译运行。如果能看到一个空白窗口,说明环境搭好了
小技巧:我习惯在Qt Creator里设置「构建目录」为build-项目名-编译器名。这样不同编译器的构建结果不会混在一起。比如build-MyApp-MinGW和build-MyApp-MSVC。
知识体系总览
下面这张图,把本章的核心知识点串起来了。你一看就明白Qt的来龙去脉和工具链关系。
嗯,这一章的内容就这些。Qt的历史、应用场景、新特性、编译器选择、环境搭建,我都讲透了。你按我说的步骤装好环境,下一章咱们就开始写第一个Qt程序。
可可精品资料库