Qt 6.10 中的新功能

Qt 6.10 中新增和恢复的模块

Qt 6.10 新增了以下模块和工具:

Qt 6.10 中的新功能

Qt Core 模块

Qt DBus 模块

Qt Graphs 模块

Qt GRPC 模块

Qt GUI 模块

Qt HttpServer 模块

Qt Lottie Animation

  • 已添加对实心层、空层和预合成层的支持。
  • 添加了lottietoqml工具。这是一个与svgtoqml相当的工具,可将 Lottie 文件转换为以 QML 描述的Qt Quick 场景。目前处于技术预览阶段。
  • VectorImage 添加了一个插件,使其除了能加载 SVG 外,还能加载 Lottie 文件。此功能为技术预览版,需要将assumeTrustedSource 设置为true
  • 已添加 lottietoqml 示例和 qtlottieviewer 示例,以演示如何使用 Qt Lottie Animation.

Qt Multimedia 模块

Qt Network 模块

  • QSslCertificate 中添加了 fromFile() 方法。
  • QHttpHeaders 添加了 setDateTimeValue() 方法,这是一种用于在 HTTP 标头中设置日期和时间值的便捷方法。
  • QHttpHeaders 添加了方便的方法,以检索QDateTime 、整数或这些类型的列表值。

Qt Protobuf 模块

Qt QML 模块

  • 新增了TreeModel QML 类型,允许在 QML 文件中定义树形结构,并与TreeView 一起使用。
  • 添加了SortFilterProxyModel QML 类型,用于排序和过滤模型数据。此功能处于技术预览阶段。
  • DelegateModel 和所有视图添加了 delegateModelAccess 属性。现在您可以将所需属性写入模型。
  • 已添加Synchronizer QML 类型。同步器可在不使用绑定的情况下保持两个或多个属性同步。该功能处于技术预览阶段。
  • 为 qmlformat 添加了分号自定义规则。现在可以控制是否在 JS 语句末尾添加分号。
  • 新增了 qmllint 警告,重点是提高与Qt Creator 的兼容性,包括检查Qt Design Studio 的特定限制、额外的 JavaScript 相关警告,以及与 QML 枚举和导入相关的若干新警告。
  • TableModel 删除了对复杂行结构操作的支持。

Qt Quick 模块

  • 添加了FlexboxLayout QML 类型,以类似CSS Flexbox 的灵活方式排列快速项目。此功能处于技术预览阶段。

Qt Quick Controls 模块

  • FluentWinUI3 风格改进了对 Windows 11 对比度主题的支持。
  • 已添加SearchField 控件

Qt Quick Dialogs 模块

  • 添加了属性popupType ,可用于控制非本地对话框是在单独窗口中打开,还是作为现有场景中的一个项目打开。此属性在使用本地对话框时无效。

Qt Quick Effects 模块

Qt Quick 3D 模块

  • 为形状发射器添加了发射模式,允许根据形状的表面法线发射粒子。
  • 实现了reversed 发射器,使粒子可以从结束时间运行到开始时间。
  • 多项与光贴图相关的改进和更改:
    • 引入了基于每单位像素的光贴图尺寸,添加了Model::texelsPerUnitLightmapper::texelsPerUnit 属性,并替换了现已废弃的Model::lightmapBaseResolution 属性。
    • 引入Lightmapper::source 属性,为整个场景设置一个光贴图源,取代并废弃了BakedLightmap::loadPrefix 属性。
    • 为烘焙光贴图添加了基于 GPU 的内置非局部均值(NLM)去噪,可通过Lightmapper::denoiseSigma 属性控制。
    • 改进了光贴图烘焙窗口,以显示进度条和剩余时间估算。
    • 现在,烘焙在自己的 RHI 上下文中进行,不会阻止正在运行的应用程序的渲染。
    • 在烘焙某些场景时,减少了 RAM 和 VRAM 的使用。
    • 添加了光贴图查看器工具,可通过图形用户界面或命令行调试已烘焙的光贴图文件。
  • 修正了 glTF2 baseColorFactor 的颜色导入,正确地从线性转换为 sRGB,使其符合规范。
  • QtQuick3D.Helpers 添加了CapsuleGeometry ,其中包含固定纹理、异步创建支持和公开的 uvProfile 属性。

Qt Quick 3D XR 模块

  • 公开了method ,用于请求空间锚点的房间扫描。

Qt Quick 3D 物理模块

Qt Quick 矢量图像模块

  • 添加了对动画 SVGs 的支持,与Qt SVG 中的动画支持相匹配。
  • 已添加API 以指示源文件是否可信。
  • 已添加API 以控制动画行为。
  • 通过包含由 Qt Lottie Animation提供的插件,VectorImage 现在还可以显示 Lottie 文件。此功能被视为技术预览,需要将assumeTrustedSource 设置为true

Qt Serial Port 模块

  • 已添加使用writeBufferSize 属性限制写缓冲区大小的支持。

Qt Serial Bus 模块

Qt SQL 模块

Qt SVG 模块

  • 已添加对填充不透明度、描边不透明度和不透明度属性的 CSS 动画支持。
  • 添加了一个示例,演示如何查看 SVG 文件。

Qt Test 模块

  • 数据驱动基准现在可以用明文名称识别全局和本地数据
  • 在 Apple Silicon 上现在禁用 lldb 的回溯功能
  • QTest 在比较中打印浮点数值时,现在可提供全精度并包含 hexfloat 版本。

Qt 虚拟键盘模块

  • 在第三方来源的属性文件中添加了 PURL 和 CPE 信息。
  • 已添加拉脱维亚语键盘布局。

Qt WebEngine 模块

Qt WebView 模块

  • 为 Windows 平台添加了 WebView2 插件。新的后端使用基于 Chromium 的 Edge 浏览器中名为WebView2 的本地 COM API。因此,您现在可以在不使用 Qt XMLWebEngine 的情况下提供网页内容。

Qt Widgets 模块

Qt XML 模块

Qt MQTT 模块

  • 添加对 WebSockets/安全 WebSockets 的支持

工具

QDoc 文档生成器

  • QDoc 现在可以自动为每个 C++ API 声明添加 "查看源代码 "链接。使用新的url.sources系列配置变量(url.sources.enabled,url.sources.rootdir,url.sources.linktext )启用该功能。
  • QDoc 现在可使用 Floyd 的循环查找算法检测 QML 类型中的循环继承,并报告问题,而不会陷入无限循环。
  • 使用\qmlproperty 命令记录.qml 文件中定义的 QML 属性组时,可识别并显示为单个分组属性。
  • Qt 工具生成的源文件(moc_,uic_,qrc_ 等)现在会自动跳过,这缩短了大型项目的 QDoc 创建时间。
  • .qml 文件中 QML 属性显示的数据类型现在可以直接在\qmlproperty 命令中重写,即使是非锯齿属性。
  • documentinheaders选项不再作为技术预览提供,而是被视为稳定选项。该选项在 Qt 6.9 中首次引入。
  • 在生成 DocBook 输出时,QDoc 现在包含重载注释。
  • 重载信号和插槽现在包含一个上下文片段,以显示其用途。
  • QDoc 可与 LLVM 21 的 Clang 库链接。
  • .index 文件包含 \fn-commands 的声明返回类型。这对于多项目构建非常有用,因为作者可以使用auto 来覆盖函数的返回类型。
  • 现在您可以使用新的\qmlenum命令来记录您的 QML 枚举。QDoc 会在生成的文档中创建新的 QML 枚举部分。
  • 代码片段缩进现在已规范化,去掉了多余的左侧空白。这意味着缩进较多的源代码片段(例如,嵌套较深的if-statements 系列)将以未嵌套的方式显示。
  • QDoc 现在能正确解析带有默认参数的模板别名。
  • 如果有非废弃的替代函数,QDoc 不再自动链接到废弃的函数。
  • 您可以使用新的\notranslate-command 阻止机器翻译字符串。

平台变更

构建系统变更

  • 使用私有 Qt 模块 Foo 现在需要调用find_package(Qt6 COMPONENTS FooPrivate) ,以使Qt6::FooPrivate 目标可用。
  • qt_add_resources() 添加了DISCARD_FILE_CONTENTS 选项。
  • 删除了在 Qt 6.6.0 中被弃用的qt6_generate_deploy_[app_]scriptFILENAME_VARIABLE 选项。
  • qt_deploy_runtime_dependencies 添加了NO_PLUGINS 参数。这将完全关闭插件部署。
  • qt_deploy_runtime_dependencies 添加了INCLUDE_PLUGIN_TYPESEXCLUDE_PLUGIN_TYPESINCLUDE_PLUGINSEXCLUDE_PLUGINS 参数。
  • qt_generate_deploy_app_script 添加了用于选择 Qt XML 插件的参数。
  • qt6_import_plugins 不再对 Linux 上使用 CMake 部署 API 的插件部署有任何影响。
  • qt6_deploy_runtime_dependencies 现在支持 Linux 上的下列插件选择标志:INCLUDE_PLUGINS,INCLUDE_PLUGIN_TYPES,EXCLUDE_PLUGINS,EXCLUDE_PLUGIN_TYPES
  • qt_add_qml_module() 添加了DISCARD_QML_CONTENTS 选项,可从目标资源系统中删除原始 QML 和 JS 文件内容。

桌面平台

Windows

MacOS

  • 选择扩展动态范围 (EDR) 的 Windows 现在可在屏幕亮度变化时触发曝光事件
  • 现在支持 titleUIElement 可访问性属性
  • 服务菜单集成现在支持富文本
  • QOperatingSystemVersion::MacOSTahoe 代表 macOS 26
  • 添加了 WhatsThisCursor 和 BusyCursor 的映射
  • QImage::toCGImage() 现在可传播图像的色彩空间

Linux 上的 Wayland 客户端

移动平台

安卓

安卓版 Qt
  • 更新 Gradle 至 8.14.2 版,更新 Android Gradle Plugin AGP 至 8.10.1 版。
  • 已添加对 Android 12 闪屏的支持。
  • 已添加对 Android 16KB 页面大小的支持。
  • 添加了一个示例 (QtJennyDemo),用于通过代码生成器 (QtJenny) 生成的 C++ 封装访问 Android API。
Qt Quick 针对安卓
  • 为 QtQuickView 下的信号添加了多参数支持。
  • 已添加在完全加载 QML 之前注册信号监听器的支持。
  • 以 javadoc 格式公开 Java API。

iOS

  • 为 Apple Pencil 添加了QPointingDevice 支持
  • 修复了标准 Apple Pencil 的旋转问题
  • 为第二代或更高版本的 Apple Pencil 添加了对悬停功能的支持
  • 选择扩展动态范围 (EDR) 的 Windows 现在会在屏幕亮度变化时触发曝光事件
  • 当应用程序脱离活动状态时,更新请求现在会暂停
  • QScreen 现在还能报告反转的屏幕方向
  • RLIMIT_STACK 现在可反映有效堆栈大小
  • QImage::toCGImage() 现在可传播图像的色彩空间

嵌入式平台

Boot to Qt

实时操作系统

  • 只有 LTS 版本才支持实时操作系统。对于非 LTS 版本,仅通过专业服务提供支持。

Qt 6.10 过时的模块

以下模块已被弃用。我们强烈建议不要在新代码中使用它们。

Qt Charts 和 Qt DataVisualization 模块已被弃用。它们仍是授权软件的一部分,也是 Qt 项目的一部分。不过,对于新代码,我们建议您使用 Qt Graphs.此外,请查阅 {Qt GraphsQt Charts}{migrating fromQt Charts} 和Qt Data Visualization 迁移的文档。

有关 Qt 模块生命周期的更多信息,请参见QUIP-14

API 变更列表

这些页面概述了 Qt 6.10 中的 API 变化:

已知问题

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

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