Qt 6.0 是 Qt 框架的一个重要里程碑版本,于 2020年12月发布。
一、主要变化
核心架构变化
- 基础模块重构
- 将 Qt Core 分解为更小的子模块
- 引入更清晰的依赖关系
- 元对象系统改进
- 更高效的元对象编译器(MOC)
- 改进的属性系统
- 统一的类型系统
- 增强的 QMetaType 系统
- 更好的与 C++17/20 特性集成
图形架构
- RHI (Rendering Hardware Interface)
- 新的底层图形抽象层
- 支持 Vulkan、Metal 和 Direct3D 12
- 保持与 OpenGL 的兼容性
- Qt Quick
- 基于 RHI 的现代图形管线
- 改进的渲染性能
- 增强的粒子系统和着色器效果
关键模块
- Qt Core
- 容器类的现代化改进
- 增强的字符串处理
- 改进的 JSON 支持
- Qt GUI
- 统一的着色器管理
- 新的图形效果API
- 改进的高DPI支持
- Qt QML
- 更快的 JavaScript 引擎
- 改进的类型系统
- 增强的调试支持
跨平台支持
- 统一的平台抽象层
- 改进的事件系统
- 更好的输入处理
- 增强的窗口系统集成
- 操作系统支持
- 继续支持 Windows、macOS、Linux
- 增强的移动平台支持
- 嵌入式系统优化
向后兼容性
Qt 6.0 保持了与 Qt 5 的较高兼容性,但也有一些破坏性变化:
- 移除了过时的 API
- 某些模块被重新组织或拆分
- 默认启用了 C++17 标准
Qt 6.0 的架构设计更加现代化,为未来的扩展和性能优化奠定了基础。
二、主要模块
QtCore
- QObject 是 Qt 对象模型的基类,提供信号槽机制。
- QCoreApplication 是非 GUI 应用的基础,QGuiApplication 和 QApplication 分别扩展为 GUI 和 Widgets 应用。
- QVariant 和 QMetaType 提供运行时类型系统支持。
- QIODevice 是文件、套接字等 I/O 操作的基类。
QtGUI
- QWindow 是窗口系统的抽象,QSurface 管理图形表面(如 OpenGL 上下文)。
- QPaintDevice 是绘图设备的基类,被 QImage(图像)、QPixmap(像素图)和 QWidget(UI 控件)继承。
Qt Widgets 模块(传统 UI)
- QWidget 是所有 UI 控件的基类。
- QLayout 管理控件布局(水平/垂直布局等)。
- QAbstractItemView 是模型-视图框架中视图组件的基类。
Qt QML 模块(现代 UI)
- QQmlEngine 是 QML 运行时引擎,QQmlComponent 加载 QML 文件。
- QQuickItem 是 QML 可视元素的基类(如 Rectangle、Text)。
- QAbstractListModel 为 QML 提供数据模型支持。
图形渲染(RHI 架构)
- QRhi(Rendering Hardware Interface)是 Qt 6 新增的跨平台图形抽象层。
- 支持多种后端:OpenGL、Vulkan、Metal、Direct3D。
- QQuickWindow 通过 QRhi 实现硬件加速渲染。
网络模块
分层视图:
┌─────────────────────────────────┐
│ Applications │
└─────────────────────────────────┘
▲
┌─────────────────────────────────┐
│ Qt Widgets / Qt Quick (QML) │
└─────────────────────────────────┘
▲
┌─────────────────────────────────┐
│ Qt GUI / OpenGL / RHI │
└─────────────────────────────────┘
▲
┌─────────────────────────────────┐
│ Qt Core (QObject, I/O) │
└─────────────────────────────────┘
▲
┌─────────────────────────────────┐
│ C++ Standard Library │
└─────────────────────────────────┘
查阅完整类图:
Qt 官方文档:查阅 Qt 6.0 Class Hierarchy。
- Doxygen 生成:使用 Qt 源码中的 Doxyfile 生成完整的类关系图。
- 工具可视化:通过 KDAB State Machine Viewer 或 Qt Creator 的类视图分析具体模块
三、所有模块
Link:所有模块 |第 6.9 季度