本页内容

Qt 6.11 的新功能

Qt 6.11 的新模块

Qt 6.11 新增了以下模块:

  • Qt Canvas Painter——一种针对基于Qt Quick 和QRhi 的渲染目标的加速 2D 绘图解决方案。
  • Qt OpenAPI—— 上游 Open API 生成器的扩展,用于生成 Qt HTTP 客户端,通常用于 RESTful API。
  • Qt TaskTree- 提供了一种声明式方法,用于组合和执行异步任务工作流。
  • Qt Labs StyleKit——一款专用的样式设计 API,通过一组共享的设计属性简化了Qt Quick Controls 的样式设置。

这些新模块目前处于技术预览阶段,其 API 不包含在Qt 的兼容性承诺范围内。但我们非常欢迎大家提供反馈,以进一步改进它们!无论是通过Qt 支持中心、Qt 错误追踪器、Qt 论坛,还是相关博客文章的评论区,我们都热忱欢迎。

Qt Canvas Painter 模块

Qt Canvas Painter是一款面向Qt Quick 和QRhi 渲染目标的加速 2D 绘制解决方案。概述请参阅Qt Canvas Painter 博客系列。

Qt OpenAPI 模块

Qt OpenAPI扩展了一个Open API 生成器,用于生成 Qt HTTP 客户端,通常用于 RESTful API。除了文档之外,博客文章《借助 Qt 6 中的 OpenAPI 支持,REST 更出色》也提供了很好的概述。

Qt TaskTree 模块

Qt TaskTree提供了一种声明式方法,用于在 C++ 中组合和执行异步任务工作流。请参阅《简介》博客系列文章以获取概述。

Qt Labs StyleKit 模块

Qt Labs StyleKit是一个专用的样式 API,通过一组共享的设计属性,简化了Qt Quick Controls 的样式设置。

Qt 6.11 的新功能

ActiveQt 模块

无显著变更。

Qt Bluetooth 模块

无显著变更。

Qt CoAP 模块

Qt Core 模块

  • QDate 现在支持弱递增,即实现了前缀和后缀递增(及递减)运算符,并且可以在 C++20 的std::views::iota 中使用。
  • QJniObject 现在可以使用std::expected (或等效类型)作为返回类型来调用 API,在这种情况下,Java 异常不会被框架捕获,而是作为意外结果传递回调用方。
  • QRangeModel::ItemAccess 提供了一个自定义点,用于访问多角色项类型的角色数据。
  • QRangeModel 现在可以将std::begin/end 用于未提供常量 实现的 C++ 范围,例如 C++20 中的std::views::filter 。
  • 对于使用相同QObject 子类处理多角色项的范围,可将新的QRangeModel::autoConnectPolicy 设置为Full或OnRead,从而将QObject 项所有公开属性的changed-signals连接到相应的dataChanged()信号发射。
  • QRangeModelAdapter 为QRangeModel 操作的范围提供了一个典型的C++容器API,确保在发生变化时会发出相关的QAbstractItemModel 信号,而用户代码无需直接处理QModelIndex 。该新类目前处于技术预览阶段。
  • 在 Windows 平台上,Qt 现可为使用 CMake 构建的可执行文件自动生成应用程序清单。该清单从 `PROJECT_VERSION` 获取应用程序版本信息,支持通过 CMake 变量自定义项目标识符和执行级别,声明与 Windows 10 及 Windows 11 的兼容性,并启用longPathAware 。

Qt Concurrent 模块

无显著变更。

Qt D-Bus 模块

无显著变更。

Qt Graphs 模块

Qt GRPC 模块

Qt GUI 模块

  • 当停靠小部件在“停靠”和“浮动”状态之间切换时,停靠窗口框架会触发新类型 QAccessible::RoleChange 的可访问性事件。
  • Qt Quick Controls 中的Switch类型使用了新的无障碍角色Switch 。
  • 滑块和类似控件使用新的无障碍属性 `Orientation ` 向无障碍客户端报告其方向。
  • QRawFont 新增了一个 API,用于获取glyphCount() 并根据字体的字形索引查询glyphName()。
  • QTextCharFormat 新增了用于设置 `font features ` 和 `variable axes` 的 API。

Qt Help 模块

无显著变化。

Qt HTTP Server 模块

Qt Image Formats 模块

更新了部分捆绑的第三方模块,详见“许可变更”。

Qt Lottie Animation

  • 增加了对路径填充规则的支持。
  • 添加了 CMAKE 命令qt_target_qml_from_lottie,用于在构建时将 Lottie 转换为 QML。
  • lottietoqml和VectorImage 后端不再属于技术预览版。
  • VectorImage: 新增了沿路径对形状进行动画处理的支持。
  • VectorImage: 新增了对变形动画(在两个形状之间进行插值)的支持。
  • VectorImage: 新增对蒙版图层的支持。

Qt MQTT 模块

无显著变更。

Qt Multimedia 模块

Qt Network 模块

  • QNetworkRequest 现在可以为当前请求指定 TCP Keep Alive 参数。此外,QNetworkAccessManager 中的默认 TCP Keep Alive 参数已更改,现在,闲置两分钟的连接将被终止。

Qt Network 授权模块

无显著变更。

Qt NFC 模块

无显著变更。

Qt OPC UA 模块

Qt OpenGL 模块

无显著变更。

Qt Positioning 模块

Qt PrintSupport 模块

  • 打印对话框的辅助功能改进:建立了标签配对和正确的焦点顺序,以增强屏幕阅读器的支持和键盘导航功能。

Qt Protobuf 模块

Qt Qml 模块

  • 在QML Language Server 中添加了工作区支持。
  • 在QML Language Server 中添加了“转到 C++ 定义”功能。
  • 通过.contextProperties.ini 配置文件为 qmllint 添加了静默处理上下文属性警告的功能。
  • 引入了override 和virtual 关键字,它们与现有的final 关键字和工具支持相结合,有助于防止意外的属性遮蔽,并允许在QML中显式覆盖属性。详情请参阅“属性遮蔽和覆盖语义”。
  • 为easingCurve 值类型命名,并将Easing命名空间转换为单例。
  • 在QQmlContext 中添加了用于获取list of child contexts 的API,并在find an object by id 中添加了相关API。
  • 在 qmlformat 中添加了 GroupAttributesTogether 选项。该选项隐含 NormalizeOrder 选项,可在不按属性(属性定义、属性绑定、方法、信号和枚举)排序的情况下,重新排序 QML 类别。
  • 在 qmlformat 中添加了 SingleLineEmptyObjects 选项。这可防止空对象扩展到第二行。

Qt Quick 模块

Qt Quick Controls 模块

Qt Quick Dialogs 模块

无值得注意的更改。

Qt Quick Effects 模块

Qt Quick Layouts 模块

无显著变更。

Qt Quick Particles 模块

无显著变更。

Qt Quick Timeline 模块

无显著变更。

Qt Quick Test 模块

无显著变更。

Qt Quick 小部件模块

无显著变更。

Qt Quick 3D 模块

  • 添加了用于用户自定义渲染阶段的 QML API,支持直接在 QML 中实现自定义渲染管道,无需 C++ 知识
  • 在ExtendedSceneEnvironment 中添加了ssrEnabled 属性,以启用屏幕空间反射(SSR)
  • 在ExtendedSceneEnvironment 中添加了屏幕空间全局照明(SSGI)效果,提供环境光遮蔽和实时间接照明
  • 为时间抗锯齿(Temporal AA)和运动模糊效果添加了按对象生成的运动向量
  • 添加了分层支持,允许将节点分组并控制摄像机渲染哪些图层
  • 添加了链表顺序无关透明度(OIT)渲染方法
  • 在后处理效果和自定义材质中增加了对NORMAL_ROUGHNESS_TEXTURE 的支持
  • 在 PCF 柔和阴影中添加了蓝色噪声采样,以提高质量并减少可见的噪声图案
  • 针对纹理中采用Qt Quick ( )的内容,已添加对预乘透明度(pre-multiplied alpha)的正确处理
  • 在后处理效果中添加了VIEW_MATRIX 和PROJECTION_MATRIX 曝光功能
  • 在View3D 中添加了pickInRect()方法,用于基于矩形的对象选择
  • 在View3D 中添加了closestPointPick() 方法,用于查找表面上距离给定点最近的点
  • 在rayPick() 中添加了可接受特定模型参数的重载版本
  • 为粒子发射器添加了场景形状功能,可根据场景几何体动态计算形状
  • 添加了QQuick3DTextureProviderExtension API,用于简化自定义纹理提供程序的创建
  • 在QSSGFrameData 中添加了scheduleRenderResults()函数,用于请求特定的渲染通道结果
  • 将 Assimp 更新至 v6.0.2

Qt Quick 3D XR 模块

  • 新增了对 OpenGL 桌面版 Linux 的支持(Monado、Xlib、Wayland 平台)
  • 扩展了processTouch(),使其能够将触摸事件传递给任何可选中的Model ,而不仅仅是XrItem
  • 增强了touchpointState(),使其能够返回 3D 触摸交互的表面位置和法线向量信息
  • 通过专用的 QQuickOverlay 在XrItem 中添加了弹出窗口和菜单支持
  • 将 OpenXR 更新至 v1.1.49

Qt Quick 3D 物理模块

无显著变更。

Qt Quick VectorImage 模块

  • 新增对 SVG 蒙版的支持。
  • 新增对 SVG 后处理滤镜的支持,以匹配以下模块中的支持: Qt SVG:feGaussianBlur、feColorMatrix、feOffset、feFlood、feBlend、feComposite 和 feMerge。
  • 新增了沿路径对形状进行动画处理的支持。
  • 新增对 SVG <symbol> 标签的支持。

Qt Serial Port 模块

无显著变更。

Qt Serial Bus 模块

无显著变更。

Qt SQL 模块

没有值得注意的更改。

Qt SVG 模块

  • 新增对通过 `offset-path ` 和 `offset-distance` 实现的 CSS 运动路径动画的支持。请注意,offset-path 仅支持使用 `path` 函数来定义路径。
  • 新增了对整个动画使用 CSS 动画时序函数的支持。目前仅支持预定义的关键字(linear 、step-start 、ease 等)。

Qt Test 模块

  • 新增了QTest::currentGlobalDataTag() 函数,用于检索当前全局测试数据的名称。
  • 添加了QTest::defaultTryTimeout ,用于配置 QTRY_* 函数使用的默认超时时间。
  • QCOMPARE 现在会打印负零和 NaN 值的符号,并打印 NaN 有效载荷。
  • QTEST_THROW_ON_FAIL 现在,当从QtConcurrent 内部调用QCOMPARE/QSKIP时,QTEST_THROW_ON_SKIP 和 也能正常工作。
  • QTest::failOnWarning() 现在在任何 >= 警告级别的消息类型上都会失败,包括关键消息。
  • 在 macOS 上,整个测试执行期间,显示休眠和 App Nap 现已无条件禁用。
  • 将 Callgrind 支持更新至 Valgrind v3.25.1,增加了对 RISCV 64 位 Linux 的支持。

Qt VirtualKeyboard 模块

  • Qt 6.11 在 `VirtualKeyboardSettings` 中引入了 `arrowKeyNavigationEnabled ` 属性,允许开发者在输入面板可见时,控制是否允许使用方向键(左、右、上、下)和回车键在键盘按键之间导航。该属性的默认值基于构建时配置标志 `QT_VIRTUALKEYBOARD_ARROW_KEY_NAVIGATION`。
  • 在KeyboardStyle 类型中添加了keyboardDesignMaximumHeight 属性。使用此属性可防止键盘覆盖屏幕的大部分区域。

Qt WebEngine 模块

  • Qt WebEngine 现已基于 Chromium 140。
  • Chromium 已添加新的 Rust 组件,旨在取代其 C++ 对应组件。现在可以选择使用这些 Rust 组件来构建Qt WebEngine 。这需要安装 Rust 工具链,并通过-feature-webengine-rust-build 进行配置。默认行为是使用旧版 C++ 组件进行构建。
  • 新增了OnlyPersistentCookies 策略,以防止会话 Cookie 被保存到磁盘。
  • 新增了TrimAccessibilityIdentifiers 设置,用于强制将 HTML 的 'id' 属性用作辅助功能自动化 ID。
  • 新增对 HTML 全局属性inputmode 的支持。
  • 改进了fetch() API 对重定向到跨源资源的处理。
  • 移除了 Pepper 插件 API 代码。
  • 启用了chrome://usb-internals 调试页面。

Qt WebView 模块

  • 为WebView 添加了 C++ 绑定,允许您在基于Qt Widgets 的应用程序中使用该模块。新的 C++ API 处于技术预览阶段,将来可能会发生变更。

Qt Widgets 模块

Qt XML 模块

没有值得注意的更改。

工具

QDoc 文档生成器

  • 新增了对 QML 单例类型的全面支持,包括一个新的\qmlsingletontype 命令、对QML_SINGLETON 宏的自动检测,以及对 QML 文件中pragma singleton 的识别。
  • QDoc 现在完全支持 QML 模块别名(import ... as ... 语法),包括链接、限定标识符的语法高亮,以及对anchors.fill 等属性表示法和Component.onCompleted 等附加属性的正确标记。
  • 您可以使用新的\toc/\endtoc 和\tocentry 命令,在文档源文件中指定分层目录结构。QDoc 会生成<project>_toc.xml 文件,用于导航侧边栏。
  • \overload 命令现在支持一个可选参数。使用\overload primary 语法来指定重载集中的主函数。
  • QDoc 现在会为重载的信号和槽生成上下文相关的连接示例。
  • includeprivate 配置变量可启用对私有C++成员的文档记录。纯虚函数现在将无条件地生成文档。
  • C++20 概念:QDoc 现可提取并显示函数和类模板的 C++20 requires 子句。同时支持模板头约束和尾部约束的位置。
  • \code 命令现在接受一个可选参数,用于指定代码块的编程语言。使用“text”可禁用语法高亮。
  • \meta keywords 参数将自定义关键字作为 HTML<meta> 元素添加,以优化搜索引擎排名并便于后续处理。
  • 现在支持使用“attached”链接准则显式链接到 QML 附加属性,当常规属性名与附加属性名发生冲突时,可消除歧义。
  • 包含两个以上参数的模板声明现在以多行格式呈现,以提高可读性。HTML 输出使用template-block CSS 类进行自定义样式设置。
  • QDoc 现在会对使用Q_PROPERTY 声明的未记录 C++ 属性发出警告,以确保所有 API 元素的文档覆盖范围一致。
  • QDoc 现在会对\sa 命令中的自引用发出警告,即文档链接到其自身的情况。
  • 配置变量 `logwarnings ` 可使 QDoc 将所有警告写入 `<project>-qdoc-warnings.log ` 文件。新的子选项 `logwarnings.disablecliargs ` 可省略日志头中的 CLI 参数,以生成可移植的日志。
  • 对于多模块构建,QDoc 警告现在会包含项目名称前缀。
  • 配置改进:
    • codelanguages: 指定了\code 代码块中支持的额外编程语言,允许文档包含没有内置语法高亮标记的语言代码。
    • imagesoutputdir: 为图像设置自定义输出子目录,以解决多模块构建中的文件名冲突问题。
    • internalfilepatterns: 根据文件/路径名称模式(例如 `*_p.h`)自动将类标记为内部类。
    • projectroot: 设置用于将警告日志中的绝对路径转换为相对路径的根目录,从而提高在不同构建环境间的可移植性。也可通过QDOC_PROJECT_ROOT 环境变量进行设置。
  • 格式化命令现可在\title 参数中使用,\generatelist 在Qt Help项目的目录结构中可正常工作,且\qmlenum 中支持自定义枚举前缀。
  • QML 和 C++ 成员文档的 HTML 结构已统一。此更改在 QDoc 的 HTML 输出中引入了新的 CSS 类(qml-member 、qml-property 、qml-method 、qml-property-group )。
  • 代码解析:改进了作用域枚举的解析、带循环检测的 QML 继承处理,以及在索引文件中正确保留声明的类型和变量信息。
  • 新增对 LLVM/Clang 21 的兼容性,支持的最低版本更新为 17.0.6。
  • \tableofcontents 命令已正式弃用。

Qt Linguist

  • 新增了标签功能,可将基于 ID 的翻译分类为有意义的组,且不会影响运行时行为。更多详细信息请参阅基于文本 ID 的翻译文档和博客文章。
  • 在文档中添加了新的国际化(i18n)示例。
  • 为Qt Linguist 添加了 AI 翻译功能,支持使用大语言模型 (LLM) 进行自动翻译。更多详情请参阅AI 翻译文档和博客文章。
  • 新增了 ltext2id 可执行文件,用于将项目从基于文本的翻译迁移至基于 ID 的翻译。详情请参阅《使用 ltext2id》。
  • 新增了 lcheck 可执行文件,用于对 TS 文件进行批量验证。更多详情请参阅《使用 lcheck》。
  • 在 lupdate 解析器中增加了对 C++ 属性的支持
  • lupdate 解析器中已弃用 //= 元字符串。
  • 已弃用用于直接处理 .pro 文件的lupdate -pro 选项。请改用lupdate-pro 。
  • 移除了 lprodump 可执行文件。其功能现可通过lupdate-pro -dump-json 选项实现。

平台变更

构建系统变更

  • 新增了 -generate-vcpkg-manifest 配置选项。该选项会在构建目录中生成一个 vcpkg.json 文件。若仅需生成清单文件而不配置 Qt,请使用 -generate-vcpkg-manifest -dry-run 参数运行 configure。
  • 使用 -vcpkg 进行配置时,会在构建目录中生成一个 vcpkg 清单文件,并将 VCPKG_MANIFEST_DIR 设置为构建目录以使用该清单文件。您可以使用 -no-generate-vcpkg-manifest 关闭清单生成功能。 您可以通过向 `configure` 传递 `-- -UVCPKG_MANIFEST_DIR ` 来禁用清单目录的设置。
  • 除了现有的 SPDX 格式外,还增加了对生成CycloneDXSBOM 文档的支持。要启用 CycloneDX 生成,请使用-sbom -sbom-cyclonedx-v1_6 -sbom-cyclonedx-v1_6-required 配置 Qt。

桌面平台

Windows

  • 通过QOperatingSystemVersion 添加了对 Windows 11 25H2(Build 10.0.26200)的支持和检测。
  • 对顶级窗口和焦点进行了多项辅助功能改进。
  • 改进了刷新率更新的处理。
  • 在使用 Visual Studio 2026 时,新增了对ARM64EC的实验性支持。要使用此配置,请将/arm64EC 添加到CFLAGS 中,并将/arm64EC 和/d2arm64ECMarkAllFuncsPatchable 添加到 Windows on ARM 机器上的CXXFLAGS 环境变量中,然后照常配置和构建 Qt。

Linux

  • Wayland 插件新增了服务器端按键重复功能、优先使用服务器端装饰效果、对xx-session-management-v1 的实验性支持,以及大量稳定性修复(弹出窗口、滚动、屏外表面、剪贴板)。
  • 已移除 XCB 的旧版 X11 本机绘制引擎(XRender)。若要使用该引擎,需在编译时通过 CMake 选项(-xcb-native-painting )启用,并在运行时通过环境变量QT_XCB_NATIVE_PAINTING 进行启用。
  • 通过添加对 AT-SPI Collection 接口的支持,增强了辅助功能。该接口为从应用程序的辅助功能层次结构中检索可访问对象提供了更高效的机制。该接口还使 Orca 屏幕阅读器能够支持浏览模式。
  • XKB:扩展了Qt::Key_Call /Qt::Key_Hangup 的键映射功能。

macOS

  • 沙盒化应用程序现在可以访问应用程序沙盒外的文件(即所谓的安全范围资源),并可进行读写操作。用户通过文件对话框或类似的原生机制选择的文件或文件夹会自动且透明地处理,包括在应用程序和设备重启后的持久访问。
  • 新增了QNativeInterface::QCocoaScreen 用于访问底层的 NSScreen。
  • CGImageRef 与QImage 之间的转换现支持更广泛的图像格式,包括对 HDR 内容至关重要的QImage::Format_RGB30 及浮点格式。
  • Apple 图标引擎现在会遵循绘制器的布局方向,如果 SF Symbols 图标集中有 RTL 专用图标,则会生成相应的图标。
  • 通过原生“打开/保存”面板选择的文件路径现已进行 NFC 规范化处理,确保无论文件系统是否以 NFD 形式存储文件名,都能保持文件名比较的一致性。

移动平台

Android

Qt for Android
  • Qt Jenny 现在支持在 C++ 中实现 Java 接口和扩展 Java 类。
  • 支持 Play 商店的“功能交付”功能。
  • 支持 Android 16。
  • 已更新至 Gradle 9.3.1 和 Android Gradle Plugin 9.0.0。
  • 已更新至 JDK 21 LTS,并将兼容性下调至 JDK 17 LTS。
Qt Quick 适用于 Android
  • 添加了 QtQuickView.invokeMethod(),用于从 Java/Kotlin 调用 QML 函数。
  • 支持在 QML 视图加载之前注册信号。

iOS

  • 在平台主题中增加了对文件图标的支持。
  • 新增对 `QFileOpenEvent ` 的支持,用于外部请求打开文件。
  • 沙盒应用程序现在可以访问应用程序沙盒外的文件(即所谓的安全范围资源),进行读写操作。用户通过文件对话框或类似的原生机制选择的文件或文件夹将得到自动且透明的处理,包括在应用程序和设备重启后的持久访问。
  • 新增对原生保存对话框的支持。

嵌入式平台

Linux

  • EGLFS/KMS 现在支持运行时显示器的热插拔和热重载(由QT_QPA_EGLFS_HOTPLUG_ENABLED 环境变量控制)。
  • 新增了一个基于 ConnMan 的QNetworkInformation 后端。
  • DirectFB:已添加Qt::Key_Call 映射。

Boot to Qt

  • 新的Tier 2 平台:
    • NXP i.MX 8M Plus LDDPR4 EVK
    • Toradex i.MX 95 Verdin
    • 高通 RB3 Gen2 视觉开发套件

Web 平台

WebAssembly

  • Qt Positioning 已为 GeoLocation API 提供了后端支持。
  • 使用新的wasmdeployqt 工具来部署和发布动态链接的Qt for WebAssembly应用程序。这取代了之前的preload_qt_plugins.py 和preload_qml_imports.py Python 脚本。

API 变更列表

以下页面概述了 Qt 6.11 中的 API 变更:

已知问题

有关 Qt 6.11 中已知问题的信息,请参阅Qt Wiki。

© 2026 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.