Qt 6.3 中的新功能

Qt 6.3 中新增和恢复的模块

Qt 6.3 新增了以下模块:

Qt 6.3 重新引入了 Qt 6.2 中没有的以下模块。所有列出的模块都已移植到 Qt 6 和 CMake 编译系统。

有关各模块变化的更详细列表,请参阅《Qt 6 中 Qt 模块的变化》(Changes to Qt Modules in Qt 6)。

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 (父FlickableWindow )中可见的区域,并可用于限制场景图节点顶点,作为自定义项目中的一项优化,但代价是需要更频繁地调用updatePaintNode() 。有关新的QQuickItem::ItemObservesViewportQQuickItem::ItemIsViewport 标志,请参阅文档。
  • 为节省内存和启动时间,TextTextEdit 现在会避免为因位于视口之外而不可见的大段文本生成场景图节点(FlickableWindow )。
  • 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-operator 对一个项目及其所有子项的输出,缩进显示树形结构。
  • TapHandler tapped, 和 信号现在有两个参数: 实例和被点击的 。如果需要信号处理程序,应编写一个显式函数来接收这些参数:singleTapped doubleTapped QEventPoint button
    onTapped: function(point, button) { ... }
    onDoubleTapped: (point, button)=> ...
  • DragHandler activeTranslation persistentTranslation 保存在随后的拖动手势中发生的移动的累积总和,并可在两次手势之间重置为任意值。

Qt Quick Controls 模块

Qt Quick Dialogs 模块

  • 添加了FolderDialogMessageDialog 。这些是支持本机对话框的平台上的本机对话框,以及其他平台上的非本机Qt Quick 对话框。

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

Qt Widgets 模块

  • QToolBar 现在支持使用动感滚轮或轨迹垫滚动。

QStyle 提供了几个新的枚举值,允许样式自定义基于 widget 的用户界面的其他外观和感觉方面:

Qt Network 模块

Qt QML 模块

  • 添加了技术预览 QML 类型编译器 (qmltc),可将 QML 类型结构编译为 C++。
  • 为现在使用编译器基础结构的 qmllint 添加了几个新警告。
  • 仅头文件的 qmlintegration 模块允许在 QML 模块中标记注册类型,而无需添加对 qtdeclarative 的依赖。这些类型可通过新的qt_generate_foreign_qml_types()CMake API 添加到 QML 模块中。
  • qmlcachegen 现在可将合适的函数和表达式编译为 C++,以提高性能。
  • 添加了新的公共 CMake API:

Qt Quick 3D 模块

  • 新增ReflectionProbe ,使模型可以显示反射。
  • Particles3D:新增ParticleCustomShape3D 元素,可从自定义 CBOR 二进制文件加载发射形状。
  • Particles3D:精灵粒子现在支持 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:

Qt Data Visualization 模块

Qt Positioning 模块

  • 为 Android 和 iOS 平台添加了新的DirectionAccuracy 属性。它表示所提供方位的精确度。

Qt Bluetooth 模块

  • 扩展了QBluetoothLocalDevice 的 Windows 实现。它能正确报告适配器状态,并允许切换其状态。但仍缺少对连接/断开设备跟踪的支持。
  • 扩展了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 的版本中使用。
  • 使用 EmscriptensEmulated POSIX TCP Sockets over WebSockets,添加了对通过WebSockets 隧道传输TCP 和 UDP 套接字的支持。此支持仅限于主线程上的异步套接字。

ARM 上的 Windows

ARM64 上的 Windows 仍处于技术预览阶段,因为与 Qt 优化版本有关的问题尚未解决。

移动平台

安卓

  • 改进了应用程序内购买演示Qt 3D:PlanetsQML 示例。
  • 将 Gradle 升级到 7.2.0,将 Android Gradle Plugin (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 和 Qt Language Server 已包含在 堆栈中。Boot to Qt

其他

路域

  • 实现了对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 中的新功能。

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