本页内容

Qt 6.3 的新功能

Qt 6.3 中的新增和恢复的模块

Qt 6.3 新增了以下模块:

Qt 6.3 重新引入了以下在 Qt 6.2 中未包含的模块。所列出的所有模块均已移植到 Qt 6 和 CMake 构建系统中。

  • Qt PDF (技术预览版)

有关每个模块变更的更详细列表,请参阅《Qt 6 中 Qt 模块的变更》。

Qt 6.3 的新功能

Qt Core 模块

Qt GUI 模块

Qt Quick 模块

  • 新增项目:TreeView 。
  • 所有指针处理程序都具有可设置的parent 属性。
  • HoverHandler 和WheelHandler 具有blocking 属性,用于控制悬停和滚轮事件是否分别传播到处理程序parent 背后的项目和处理程序。
  • TapHandler 现在多了一个gesturePolicy 值:DragWithinBounds ;它与WithinBounds 类似,不同之处在于,即使用户在按住指点的同时进行拖拽,timeHeld 在拖拽过程中也不会重置,而且如果用户按住的时间足够长,无论拖拽阈值如何,都会发出longPressed 信号。 这对于实现“按住-拖动-释放”类型的组件(例如菜单,如指针处理程序示例中的扇形菜单)非常有用,同时可以使用timeHeld 直接驱动“展开”动画。

  • QQuickItem::clipRect() 现在提供了在viewport 中可见的区域(父Flickable 或Window ),可用于在自定义项目中限制场景图节点的顶点数量以进行优化,但代价是updatePaintNode() 会被更频繁地调用。请参阅关于新信号QQuickItem::ItemObservesViewport 和QQuickItem::ItemIsViewport 标志的文档。
  • 为了节省内存和启动时间,Text 和TextEdit 现在会避免为因超出视口范围(Flickable 或Window )而不可见的大段文本生成场景图节点。
  • Text 现在可以渲染来自 HTML 或 Markdown 的水平线。
  • 在Text 中,水平线以及下划线、上划线和删除线均可通过 HTML 源代码中包含的 CSS 规则进行着色。
    import QtQuick
    
    Text {
        textFormat: Text.RichText
        wrapMode: Text.WordWrap
        width: 440
        font.pointSize: 12
        text: `<p><u style="color: green;">green with underline</u>
                  <span style="text-decoration: underline; text-decoration-color: green;">
                    green underline</span></p>
               <p><s style="background-color: lightgrey;">plain strikethrough</s>
                  <span style="text-decoration: line-through; text-decoration-color: orange;">
                    orange strikethrough</span></p>
               <p><span style="text-decoration: overline;">plain overline</span>
                  <span style="text-decoration: overline; text-decoration-color: red;">
                    red overline</span></p>`
    }
  • QQuickItem::dumpItemTree已添加 () 函数;可从 C++(类似于QObject::dumpObjectTree()) 或从 QML 调用该函数,以显示某项及其所有子项的qDebug- 运算符输出结果,并进行缩进以展示树形结构。
  • TapHandler tapped 、 和 信号现在有两个参数: 实例以及正在被点击的 。如果您需要信号处理程序,应编写一个显式函数来接收这些参数:singleTapped doubleTapped QEventPoint button
    onTapped: function(point, button) { ... }
    onDoubleTapped: (point, button)=> ...
  • DragHandler activeTranslation 现在保存了自拖动手势开始以来的位移量。 保存了后续拖动手势期间发生的累计位移量,并且可以在不同手势之间重置为任意值。persistentTranslation

Qt Quick Controls 模块

Qt Quick Dialogs 模块

  • 已添加FolderDialog 和MessageDialog 。在支持原生对话框的平台上,这些是原生对话框;在其他平台上,则是非原生Qt Quick 对话框。

    非原生对话框支持所有非原生样式:Basic、Fusion、Imagine、Material 和 Universal。

Qt Widgets 模块

  • QToolBar 现在支持使用动感滚轮或触控板进行滚动。

新增了若干QStyle 枚举值,允许样式自定义基于小部件的用户界面的其他外观和感觉方面:

Qt Network Module

Qt Qml 模块

  • 添加了技术预览版 QML 类型编译器(qmltc ),可将 QML 类型结构编译为 C++。
  • 为 qmllint 添加了若干新警告,该工具现已采用编译器基础设施。
  • 仅包含头文件的 qmlintegration 模块允许在 QML 模块中标记待注册的类型,而无需添加对 qtdeclarative 的依赖。随后可通过新的qt_generate_foreign_qml_types()CMake API 将这些类型添加到 QML 模块中。
  • qmlcachegen 现在会将合适的函数和表达式编译为 C++,以提升性能。
  • 在Binding 和PropertyChanges 中添加了对通用分组属性的支持,允许在这些上下文中使用分组属性语法(例如,someId.someProperty )。
  • 引入了基础的QML Language Server 。
  • 通过QML_NAMESPACE_EXTENDED 引入了对命名空间作为其他命名空间扩展的支持。
  • 新增了公共 CMake API:

Qt Quick 3D 模块

  • 新增了ReflectionProbe ,使模型能够显示反射效果。
  • Particles3D:新增了ParticleCustomShape3D 元素,可从自定义CBOR二进制文件中加载发光形状。
  • Particles3D:Sprite 粒子现已支持 3D 环境光。
  • Particles3D:新增DynamicBurst 元素,用于声明式动态发射以及在轨迹开始/结束时刻进行发射。
  • 新增ResourceLoader 组件,用于显式设置资源生命周期(技术预览版)
  • PrincipledMaterial:新增对清漆(ClearCoat)、透射(Transmission)和折射(Refraction)的支持。
  • glTF2:导入器现支持以下新增扩展:KHR_materials_clearcoat、KHR_materials_ior、KHR_materials_transmission、KHR_materials_volume

Qt WebEngine 模块

  • 现在使用 Python 3 而不是 Python 2 进行构建
  • 添加了用于替换 QML 触摸选择菜单的 API
  • 新增了公共 CMake API:
    • 用于将Hunspell词典转换为Qt WebEngine 的.bdic 二进制格式:qt_add_webengine_dictionary()

Qt Data Visualization 模块

  • 在 Q3DSurface 中新增了一个wireframeColor 属性,用于设置 QSurface3DSeries 的线框颜色。
  • 新增了rowColors 属性,用于为Q3DBars中的条形图行设置不同的颜色。
  • 新增了一个barSeriesMargin 属性,用于设置 Q3DBars 中单个条形图的边距。
  • 在 QAbstract3DGraph 中添加了hasSeries 函数,用于检查一个系列是否已被添加。
  • 增加了对 16 位高度图的支持。

Qt Positioning 模块

  • 为 Android 和 iOS 平台新增了DirectionAccuracy 属性。该属性表示所提供方位角的精度。

Qt Bluetooth 模块

  • 扩展了 Windows 平台上 `QBluetoothLocalDevice` 的实现。它能正确报告适配器状态,并允许切换其状态。目前仍不支持已连接/已断开设备的跟踪功能。
  • 扩展了QBluetoothDeviceInfo API,以公开蓝牙低功耗服务在广告期间发布的数据。

Qt Wayland Compositor 模块

  • 新增了一个用于创建自定义 Shell 扩展的 API。有关使用说明,请参阅示例。
  • 新增了一个Qt Shell,支持 Qt 中所有可用的窗口系统功能。
  • 增加了对presentation-time 协议的支持。
  • 在同一服务器中增加了对多种输入法协议的支持,以支持来自不同来源的客户端。

平台变更

技术预览平台

WebAssembly

对 Qt for WebAssembly 进行了多项改进。详情请参阅Qt for WebAssembly平台文档。

  • 新增了将图像和 HTML 文本复制/粘贴到系统剪贴板的功能。
  • 新增了 SIMD 支持。请注意,启用 SIMD 需要从源代码编译 Qt。
  • 新增了在次级线程上调用 `QEventLoop::exec()` 和 `QThread::exec()` 的支持。
  • 新增了在主线程上使用Emscripten Asyncify 调用QEventLoop::exec() 和QDialog::exec() 的支持。请注意,启用 Asyncify 需要从源代码构建 Qt。
  • 在启用 asyncify 的构建中,拖放功能现已正常工作。
  • 新增了对通过 WebSockets 隧道传输 TCP 和 UDP 套接字的支持,使用的是 Emscripten通过 WebSockets 模拟的 POSIX TCP 套接字。此支持仅限于主线程上的异步套接字。

ARM 架构的 Windows

Windows on ARM64 仍处于技术预览阶段,因为 Qt 优化构建版本存在的问题尚未得到解决。

移动平台

Android

  • 应用内购买演示和“Qt 3D :Planets QML示例”针对Android平台进行了专门优化。
  • 已将 Gradle 更新至 7.2.0,并将 Android Gradle 插件 (AGP) 更新至 7.0.2(需要 JDK 11 或更高版本)。
  • 为 CMake Android 项目添加了缺失的 _make_aab 目标。
  • 为 CMake 添加了多 ABI 构建,详见QT_ANDROID_ABIS。
  • QML 模块现已整理到用户构建文件夹下的一个名为“android-qml”的公共目录中。该目录作为androiddeployqt 工具的通用导入路径。
  • QML 测试平台现已在 Android 构建中正常运行。

iOS

  • 基于 CMake 的项目现在会生成默认启动屏幕。

嵌入式平台

Boot to Qt

  • Boot to Qt 堆栈已更新为使用 Yocto 3.4(honister)。
  • Qt PDF Boot to Qt 堆栈中已包含 Qt 语言服务器。

其他

Wayland

  • 已实现对DataDeviceV3 协议的支持。
  • 将wl_seat 支持升级至 7 版。
  • 如果服务器支持多个接口,则增加了对输入法协议选择的支持。这可以通过将 QT_WAYLAND_TEXT_INPUT_PROTOCOL 设置为协议名称来实现。

API 变更列表

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

所有 Qt 6 版本的新增内容

What's New in Qt 6.0

列出了 Qt 6.0 中的新功能。

What's New in Qt 6.1

列出了 Qt 6.1 的新功能。

What's New in Qt 6.2

列出了 Qt 6.2 中的新功能。

What's New in Qt 6.3

列出了 Qt 6.3 中的新功能。

What's New in Qt 6.4

列出了 Qt 6.4 中的新功能。

What's New in Qt 6.5

列出了 Qt 6.5 的新功能。

What's New in Qt 6.6

列出了 Qt 6.6 中的新功能。

What's New in Qt 6.7

列出了 Qt 6.7 的新功能。

What's New in Qt 6.8

列出了 Qt 6.8 中的新功能。

What's New in Qt 6.9

列出了 Qt 6.9 中的新功能。

What's New in Qt 6.10

列出了 Qt 6.10 的新功能。

What's New in Qt 6.11

列出了 Qt 6.11 的新功能。

What's New in Qt 6.12

列出了 Qt 6.12 的新功能。

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