在 Qt 6.1 中新增和恢复的模块
- Active Qt 模块
Active Qt 为 Windows 开发者提供了 ActiveX 和 COM 支持,使得他们能够在 Qt 应用程序中访问和使用任何 ActiveX 服务器提供的 ActiveX 控件和 COM 对象,以及将 Qt 应用程序作为 COM 服务器,让任意数量的 Qt 对象和小部件成为 COM 对象和 ActiveX 控件。 - Qt 图表模块
Qt 图表仅支持 OpenGL 加速系列(AbstractSeries.useOpenGL)。如果在 Qt Quick 上使用其他图形 API 进行渲染,这种序列将不会渲染。 - Qt 数据可视化模块
Qt 数据可视化仅支持 OpenGL RHI 后端,并要求在环境变量 QSG_RHI_BACKEND 中设置为 opengl。这可以在系统级别进行,也可以在应用程序的 main() 中使用 qputenv(“QSG_RHI_BACKEND”, “opengl”); 进行设置。 - Qt 设备实用程序模块
仅支持网络功能。 - Qt Lottie 模块
Qt Lottie 动画模块已移植到 Qt 6 和 CMake 构建系统。 - Qt SCXML 和 Qt 状态机
Qt 状态机包含了在 Qt 5 中属于 Qt Core 的 API。安装程序中的 Qt 状态机包含了 Qt SCXML 和 Qt 状态机模块。 - Qt 虚拟键盘模块
Qt 虚拟键盘模块已移植到 Qt 6 和 CMake 构建系统。 - 新的字典管理器可以让用户定义的字典(如电话簿)通过应用程序实现。
- VirtualKeyboardSettings 中有新属性。
- 增加了对 Cerence 手写(T9 Write)和 XT9 的支持。
在 Qt 6.1 中的新功能
Qt Core 模块:
- QFuture 新增便利功能以创建不同状态的 futures,并可在上下文对象的线程中调用其后续功能。
- qfloat16 可以不初始化地构造。
- 提供 qHypot(),将 std::hypot() 推广到任意多的参数,并支持 qfloat16 参数。
- 通过函数 qAddOverflow()、qSubOverflow() 和 qMulOverflow() 支持溢出安全的算术运算。
- 将 removeIf() 方法和 erase_if() 支持扩展到更多类。例如 QHash,QMap 及其 Multi 变体;QSet;QString,QByteArray 和 QList 以及 QVarLengthArray。
- QStringView 的 API 现在包括 count(),contains(),indexOf(),lastIndexOf(),constBegin() 和 constEnd()。
- QLocale 提供从其枚举到 ISO 代码的映射,反之亦然。
- QSocketNotifier 现在支持更灵活的创建。
- 增加了 QOperatingSystemVersion::version(),QMetaType::hasRegisteredDataStreamOperators() 和 QUntypedBindable::isReadOnly()。
- 将 QJniObject 和 QJniEnvironment 作为公共 API(主要用于 Android)。
- 对象属性绑定收到 API 优化,并将绑定添加到 Qt Core 类中。
Qt Gui 模块:
- QColorSpace 现在可以将自定义转移功能设置为表格。
- QTextDocument 现在允许您设置资源提供者函数,而无需子类化 QTextDocument 并重载 loadResource()。
- Vulkan API 包装器(QVulkanFunctions,QVulkanDeviceFunctions)现在还公开了 Vulkan 1.1 和 1.2 核心API。
- 同时为 QVulkanInstance 新增了相关新功能(supportedApiVersion()),以便在实例创建之前查询支持的实例级版本。
- 添加了 QPainter::VerticalSubpixelPositioning 提示。目前只在 Freetype 字体后端上受支持。
Qt Widgets模块 - QLabel 为 QTextDocument 的资源提供程序函数增加了设置器和获取器方法。查看 Qt Gui 模块更改以获取更多信息。
Qt 网络模块
- QNetworkCookie 现在支持 SameSite 功能。
- 介绍 QNetworkInformation:
- QNetworkInformation 目前使用系统 API 公开系统的可达性。
- 目前支持 Darwin、Windows、Android 和 Linux 上的 NetworkManager。
- 将 QSslSocket 和相关 QSsl 类所使用的 TLS 后端转换为面向插件的设计。
- QtNetwork 的 ‘ssl’ 子模块中的公共类和私有类现在已实现 TLS 中立,不暴露给低级别 API/细节。
- 现有的 TLS 后端(OpenSSL、SecureTransport、Schannel)现在报告它们支持的类、特性和协议。
- 可以让使用 Qt 的应用程序提供其自己的后端,供 QSslSocket 和相关类使用。
Qt Qml模块
- 增加了QJSPrimitiveValue 和 QJSManagedValue,以在 QJSValue 单独使用时实现对 JavaScript 执行的更细致控制。
- qt6_add_qml_module CMake 函数(仍处于技术预览阶段)为目标的 QML 文件添加了一个 qmllint 目标。
Qt Quick 3D模块
- 技术预览:实例渲染,一种使用不同变换绘制多个同一对象实例的优化方法。此功能被视为功能齐全,但可能根据用户反馈进行了小的 API 更改。计划在 Qt 6.2 中最终确定。
- 技术预览:3D 粒子,一种在 3D 场景中添加粒子效果的 API。此 API 可进行测试,但尚未完整。
- Qt Quick 3D 现在支持 morph target 动画,即所有顶点在两组位置之间插值的动画,给人一种形状正在变为另一形状的印象。
Qt 5兼容性模块
- 尽管 Qt Graphical Effects 不随 Qt 6 一起提供,但已将一些效果移植到新的图形架构中,并添加到了 Qt5Compat 模块中。例如,要获取 DropShadow,添加 QML 导入 Qt5Compat.GraphicalEffects。已删除一些依赖动态着色器生成的复杂效果,例如多种模糊变体。