Qt 6.1 中的新功能
Qt 6.1 中新增和恢复的模块
Qt 6.1 新增了以下模块:
Active Qt 模块
Active Qt提供 ActiveX 和 COM 支持,使 Qt for Windows 开发人员能够
- 在其 Qt 应用程序中访问和使用任何 ActiveX 服务器提供的 ActiveX 控件和 COM 对象。
- 将其 Qt 应用程序作为 COM 服务器使用,将任意数量的 Qt 对象和部件作为 COM 对象和 ActiveX 控件使用。
Qt Charts 模块
Qt Charts仍然只支持 OpenGL 加速系列 (AbstractSeries.useOpenGL)。如果使用其他图形 API 进行渲染,此类系列将不会在Qt Quick 中渲染。
Qt Data Visualization 模块
Qt Data Visualization仅支持 OpenGL RHI 后端,并要求将环境变量QSG_RHI_BACKEND
设置为opengl
。这可以在系统级完成,也可以在应用程序的main()中通过qputenv("QSG_RHI_BACKEND", "opengl");
进行定义。
Qt Device Utilities 模块
仅支持网络功能。
Qt Lottie 模块
模块 Qt Lottie Animation模块已移植到 Qt 6 和 CMake 编译系统。
Qt SCXML 和 Qt 状态机
Qt State Machine包含的 API 是 Qt 5 中Qt Core 的一部分。安装程序中的Qt State Machine 软件包同时包含了 Qt SCXML模块和 Qt State Machine模块。
Qt Virtual Keyboard 模块
模块 Qt Virtual Keyboard模块已移植到 Qt 6 和 CMake 编译系统。
- 新的字典管理器允许应用程序执行用户定义的字典(如电话簿)。
- VirtualKeyboardSettings 中有新的属性。
- 新增了对 Cerence 手写(T9 Write)和 XT9 的支持。
Qt 6.1 中的新功能
Qt Core 模块
- QFuture 具有新的方便函数,可在各种状态下创建期货,现在可在上下文对象的线程中调用其延续。
- qfloat16 可以在未初始化的情况下构建。
- <QtMath> 提供了qHypot(),将 std::hypot() 推广到任意多个参数,并支持 qfloat16 参数。
- 函数qAddOverflow() 、qSubOverflow() 和qMulOverflow() 现在支持溢出安全运算。
- removeIf() 方法和erase_if() 支持扩展到更多类:
- QHash,QMap 及其 Multi 变体,它们的谓词可以使用 std::pair 或容器自己的迭代器。
- QSet此外,为了与标准库兼容,还增加了插入()重载,该重载可接受(但忽略)位置提示。
- QString此外,QByteArray 和QList 也获得了erase() 支持,可以移除指定值的所有实例。
- QVarLengthArray,同时还支持erase() 以及 removeAll() 和 removeOne() 方法。
- QStringView该 API 现在包括 count()、contains() 、indexOf()、lastIndexOf()、constBegin() 和 constEnd()。
- QLocale 提供从枚举到 ISO 代码的映射:languageToCode()、scriptToCode()、countryToCode()、codeToLanguage()、codeToScript() 和 codeToCountry()。
- QSocketNotifier 现在支持更灵活的创建。
- 新增了QOperatingSystemVersion::version()、QMetaType::hasRegisteredDataStreamOperators() 和QUntypedBindable::isReadOnly(),希望它们的名称已足够说明问题。
- 添加了QJniObject 和QJniEnvironment 作为公共 API(主要用于 Android)。
- 对象属性绑定已获得 API 改进,绑定已添加到Qt Core 类中--请参阅 "属性绑定"博文了解相关内容。
Qt GUI 模块
- QColorSpace 现在可以将自定义传输函数设置为表格。
- QTextDocument 现在,您可以设置一个资源提供函数,而不是子类化 和重载 loadResource()。QTextDocument
- Vulkan API 封装程序(QVulkanFunctions,QVulkanDeviceFunctions )现在也能公开 Vulkan 1.1 和 1.2 核心 API。
- QVulkanInstance 添加了相关的新功能(supportedApiVersion()),允许在创建实例前查询支持的实例级版本。
- 添加了QPainter::VerticalSubpixelPositioning 提示。目前只有 Freetype 字体后端支持该功能,一旦可用,将能在垂直方向上对文本进行亚像素定位,但会占用一些内存并增加额外工作。对于大多数使用情况,应关闭此功能,但在非常特殊的情况下,如果要在动态变换的绘制器上垂直对齐绘制元素,此功能可能非常有用。
Qt Widgets 模块
- QLabel 在 中为资源提供者函数提供了 setter 和 getter 方法。请查看QTextDocumentQt GUI 模块变更以获取更多信息。
Qt Network 模块
- QNetworkCookie 现在支持 SameSite 功能。
- 引入了QNetworkInformation :
- QNetworkInformation 目前使用系统 API 公开系统的可达性。
- 目前支持 Darwin、Windows、Android 和 Linux 上的 NetworkManager。
- 支持QSslSocket 和相关QSsl 类的 TLS 后端已转换为面向插件的设计。
- QtNetwork 的 "ssl "子模块中的公共和私有类现在是 TLS 中性实现,不会暴露于底层 API/细节。
- 现有的 TLS 后端(OpenSSL、SecureTransport、Schannel)现在会报告它们支持哪些类、功能和协议。
- 使用 Qt XML 的应用程序可以提供自己的后端,供QSslSocket 和相关类使用。
Qt Qml 模块
- 添加了QJSPrimitiveValue 和QJSManagedValue ,以便对 JavaScript 的执行进行比QJSValue 更精细的控制。
- qt6_add_qml_module CMake 函数(仍在技术预览版中)添加了一个 qmllint 目标,可在目标的 QML 文件上运行 qmllint。
Qt Quick 3D 模块
- 技术预览:"实例渲染"(Instanced Rendering),一种以不同变换绘制同一对象的多个实例的优化方法。该功能已被认为功能完备,但仍可能根据用户反馈对 API 进行微小改动。计划在 Qt 6.2 中最终完成。
- 技术预览:3D 粒子:为 3D 场景添加粒子效果的 API。该 API 已可供测试,但功能尚未完善。
- Qt Quick 3D 现在支持变形目标动画,即所有顶点在两组位置之间插值的动画,给人一种形状正在变形为另一种形状的感觉。
Qt 5 兼容模块
虽然 QtGraphical Effects 并不随 Qt 6 一起发布,但一些效果已移植到新的 Graphical 架构,并添加到 Qt5Compat 模块中。例如,要访问DropShadow ,请添加 QML importQt5Compat.GraphicalEffects。删除了一些依赖动态着色器生成的复杂效果,如一些模糊变体。
API 变更列表
这些页面概述了 Qt 6.1 中的 API 变化:
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.