当前最新版本
- 最新稳定版本:Qt 6.11.1(2026 年 5 月 13 日发布)
- 主要版本:Qt 6.11(2026 年 3 月 23 日发布)
支持情况(2026 年 6 月):
- Qt 6.11:标准支持至 2027 年 3 月
- Qt 6.10:支持至 2026 年 10 月
- Qt 6.8 LTS(长期支持版):支持至 2029 年 10 月(商业用户推荐用于大型长期项目)
推荐选择:
- 新项目:直接使用 Qt 6.11 或 Qt 6.8 LTS
- 企业/长期维护项目:优先 Qt 6.8 LTS
Qt 发展历程(1991 年至今)
| 时间 | 版本 | 主要里程碑与特点 |
|---|---|---|
| 1991 年 | - | 挪威程序员 Haavard Nord 和 Eirik Chambe-Eng 开始开发 |
| 1994 年 | - | 成立 Trolltech 公司 |
| 1995 年 5 月 | Qt 0.90 | 首次公开发布(仅支持 X11/Linux) |
| 1996-2000 年 | Qt 1.x / 2.x | 支持 Windows,逐渐流行,被 KDE 项目采用 |
| 2005 年 | Qt 4.0 | 重大重构,模块化架构,引入更现代的设计 |
| 2008 年 | - | Trolltech 被 Nokia 收购 |
| 2012 年 12 月 | Qt 5.0 | 引入 QML + Qt Quick(声明式 UI)、硬件加速图形、大幅现代化 |
| 2012-2014 年 | - | Digia 收购 Qt 业务,后成立 The Qt Company |
| 2020 年 12 月 | Qt 6.0 | 重大架构升级: • 移除大量废弃 API • 现代 C++ 标准支持 • 更好的 3D / 图形性能 • 模块拆分更清晰 |
| 2021-2024 年 | Qt 6.1 ~ 6.7 | 持续迭代,强化跨平台、嵌入式、汽车领域支持 |
| 2024 年 10 月 | Qt 6.8 LTS | 重要的长期支持版本,支持至 2029 年 |
| 2025-2026 年 | Qt 6.9 ~ 6.11 | 重点增强: • 硬件加速 2D 渲染 • 3D 图形改进(SSGI 等) • 可访问性(Accessibility) • QML 性能与现代 C++ 异步支持 • Android 16 等平台更新 |
Qt 主要版本特点总结
- Qt 4:经典时代,Widgets 体系最成熟,被大量传统桌面软件采用。
- Qt 5:引入 QML,让 Qt 进入现代 UI 时代,极大提升了动画和美观度。
- Qt 6(当前主流):架构更干净、性能更高、模块更清晰,全面拥抱现代 C++,为未来 10 年打下基础。
当前发展趋势(2026 年)
- Qt Quick(QML) 越来越为主流,即使是桌面软件也倾向于混合使用。
- 重点投入 汽车、工业嵌入式、医疗 等高可靠性领域。
- 加强 性能、图形渲染、可访问性。
- CMake 已成为官方推荐构建系统(qmake 逐渐淡化)。
- 商业许可政策更严格,但开源版仍可用于很多项目。
Qt库版本的兼容性
Qt 的版本兼容性是所有长期维护项目(尤其是工业控制、上位机、自动化系统等对稳定性要求极高的领域)必须面对的核心问题。
Qt 的版本号严格遵循语义化版本(Semantic Versioning),即 主版本号.次版本号.修订版本号(例如 6.5.12)。它们之间的兼容性规律非常清晰,主要分为以下三个维度:
一、 兼容性的三大核心定律
1. 修订版本之间(Patch Releases, 如 6.5.1 $\rightarrow$ 6.5.12)
-
兼容性:100% 源码兼容 + 100% 二进制兼容。
-
原则:这个级别的更新只修复 Bug、优化性能和修补安全漏洞,绝对不会增加新功能或改变既有 API。
-
开发策略:上位机系统在生产环境中更新补丁版本通常是绝对安全的,不需要重新编译既有程序,直接替换动态链接库(.dll 或 .so)即可运行。
2. 次版本之间(Minor Releases, 如 6.2 $\rightarrow$ 6.5 <span class="math-inline" data-math="\rightarrow" data-index-in-node="47">$\rightarrow$ 6.8)
-
兼容性:向后二进制兼容(Backward Binary Compatibility)+ 绝大多数源码兼容。
-
原则:允许引入新功能、新模块,允许将旧 API 标记为废弃(Deprecated),但不能删除旧 API。
-
向后二进制兼容的意思是:用低版本(如 Qt 6.2)编译好的程序,可以直接在高版本(如 Qt 6.5)的运行库下跑;但反过来不行。
-
开发策略:如果项目从 Qt 6.2 升级到 Qt 6.5,直接重新编译代码(Source code)通常能一次性直接通过,只有极少数使用了未公开 API 或底层非稳定特性的地方可能需要微调。
3. 主版本之间(Major Releases, 如 Qt 4 $\rightarrow$ Qt 5 <span class="math-inline" data-math="\rightarrow" data-index-in-node="49">$\rightarrow$ Qt 6)
-
兼容性:完全不承诺二进制兼容,源码部分兼容(需要移植)。
-
原则:主版本号的升级意味着底层架构的彻底重构和“卸下历史包袱”。不合时宜的旧 API 会被彻底删除,模块会被分拆或合并。
-
开发策略:不能直接替换库,也不能直接无脑重编译。 必须根据官方移植指南(Porting Guide)修改代码。
二、 焦点:Qt 5 与 Qt 6 之间的断层与过渡
如果你手里有基于 Qt 5(比如非常经典的工业级版本 Qt 5.9 或 Qt 5.15)开发的上位机系统,想要迁移到 Qt 6,会遇到以下几个关键的兼容性变化:
1. 编译标准的大修
-
Qt 5:基于 C++11 标准。
-
Qt 6:强制要求 C++17 或更高版本的编译器(如 MSVC 2022、MinGW 13.1)。如果你的老项目中包含大量古老的 C 风格代码或不兼容 C++17 语法的第三方库,编译会报错。
2. 被彻底移除或重构的核心类
Qt 6 砍掉了很多历史包袱,导致大量老代码在初次编译时会“满屏飘红”:
-
QRegExp(正则表达式)被移除:完全被QRegularExpression取代。 -
QTextCodec(编码转换)被移除:内核默认全平面转为QStringDecoder/QStringEncoder(默认 UTF-8),这对于处理工业串口/网口底层 GBK 字符集的上位机影响极大。 -
图形渲染架构剧变:Qt 5 强依赖 OpenGL,而 Qt 6 引入了全新的 RHI(Rendering Hardware Interface) 抽象层,底层支持 Vulkan、DirectX 12、Metal 和 OpenGL。老项目中直接调用底层 OpenGL 函数(如
QOpenGLWidget)的代码必须重写。
3. 官方救火队:Core5Compat 模块
为了防止老项目迁移工作量过大,官方在 Qt 6 中提供了一个过渡模块 Core5Compat。
如果在 CMake 中引入:
CMake
find_package(Qt6 REQUIRED COMPONENTS Core5Compat)
target_link_libraries(mytarget PRIVATE Qt6::Core5Compat)
你就能在 Qt 6 中继续复用 QRegExp、QTextCodec 等已被删除的 Qt 5 遗留类,以此来实现平滑降落,后续再逐步重构。
三、 现代 CMake 下的“双版本跨越”技巧
在实际工程中,为了保证维护的灵活性,很多团队会编写一套代码,同时兼容 Qt 5 和 Qt 6。从 Qt 5.15 开始,官方引入了无版本号目标(Versionless Targets)机制,使得编写跨版本构建脚本变得极其简单:
# 优先寻找 Qt 6,找不到则回退到 Qt 5.15
find_package(Qt6 COMPONENTS Core Widgets)
if (NOT Qt6_FOUND)
find_package(Qt5 5.15 REQUIRED COMPONENTS Core Widgets)
endif()
add_executable(HyMasterProject main.cpp)
# 使用通用的 Qt::Core 和 Qt::Widgets,CMake 会自动解析为对应的 Qt5:: 或 Qt6::
target_link_libraries(HyMasterProject PRIVATE
Qt::Core
Qt::Widgets
)
🛠️ 工业/商业项目的版本选择与兼容性建议
-
拒绝尝鲜非 LTS 版本:在商业和工业自动化生产中,只选用 LTS(Long-Term Support,长期支持)版本。Qt 6 时代的
6.2 LTS、6.5 LTS以及目前的6.8 LTS才是主力。LTS 版本拥有长达 5 年的补丁维护期,能最大程度规避次版本更新带来的行为断层。 -
善用
QT_DISABLE_DEPRECATED_UP_TO宏:如果你还在用 Qt 5.15 维护老项目,可以在工程中定义这个宏(将其设置为0x060000)。编译器会把所有在 Qt 6 中即将被删除的旧 API 直接报错剔除,逼迫你在代码阶段就完成准 Qt 6 化的合规重构。
浙公网安备 33010602011771号