Qt 6.5 中的新功能

Qt 6.5 中新增和恢复的模块

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

技术预览版中的新模块和恢复模块

注意: 不保证 API 和 ABI 的稳定性。

  • Qt LocationMap Qt Quick MapView 包括Qt Quick 输入处理程序,用于实现典型的交互功能(缩放、平移、倾斜)。
  • Qt GRPC支持使用根据 protobuf .proto-specifications 中的服务描述生成的类与 gRPC 服务通信。
  • Qt Protobuf支持根据 protobuf .proto-specifications 生成基于 Qt 的类并对其进行序列化和反序列化。

Qt 6.5 中的新功能

Qt Core 模块

  • QTimeZone 现在可在轻量级时间表示中打包 和偏移量(如相关),该表示统一了使用 或 和偏移量的 和 的各种 API。Qt::TimeSpec QTimeZone Qt::TimeSpec QDateTime QDate
  • 引入应用程序权限API,允许应用程序检查或请求使用前需要用户同意的功能的权限。
  • 采用通用跟踪格式 (CTF) 的新跨平台跟踪后端。
  • QBindable 现在,您可以从带有 NOTIFY 信号的任何属性中构建 "NOTIFY"。这让你可以将现有的不可绑定属性与可绑定属性整合在一起。
  • 现在,qt_generate_deploy_app_scriptCMake 函数最好能接受一个名为 OUTPUT_SCRIPT 的参数。传递旧的 FILENAME_VARIABLE 已被弃用。

Qt GUI 模块

  • 重新引入了QWindowsMimeConverterQUtiMimeConverter 类,用于在 Windows、macOS 和 iOS 上以特定平台格式处理拖放和剪贴板数据。
  • QVulkanInstance 现在默认启用 Vulkan Portability 物理设备。要在苹果平台上使用较新版本的 MoltenVK,必须启用此功能。新增了 NoPortabilityDrivers 标记,让你可以选择退出。
  • Vulkan 渲染基础架构现在使用 VK_EXT_debug_utils,而非过时的 VK_EXT_debug_report 和 VK_EXT_debug_marker。
  • QTextLayout::glyphRuns() 现在可以在请求时返回每个字形对应的字符串索引。通过新函数QGlyphRun::stringIndexes() 提供。
  • 复选框列表项现在可以用 HTML 和 Markdown 读写,包括转换。
  • 添加了QGuiApplication::setBadgeNumber() 以向用户反馈未读信息或类似信息的数量。徽章将覆盖 macOS Dock、iOS 主屏幕图标或 Windows 任务栏中的应用程序图标。

Qt Quick 模块

Qt Labs 动画模块

Qt Quick Controls 模块

Qt Test 模块

Qt Widgets 模块

Qt Positioning 模块

Qt Serial Bus 模块

所有新类都是试验性的,可能会有变化。

Qt Network 模块

  • 引入QHttp1Configuration 。该类可用于配置使用 HTTP 1 时每台主机使用的最大连接数(默认值:6)。
  • QNetworkRequest 在 Qt for WebAssembly 上获得了 UseCredentialsAttribute 属性,为底层 启用了 withCredentials。XMLHttpRequest

Qt QML 模块

  • QQmlApplicationEngineQQmlComponent 添加了 API,以便通过模块 URI 和类型名称加载/创建 QML 元素。与基于 URL 的函数不同,这也适用于 C++ 类型和内联组件。
  • QQmlListProperty 属性(properties)现在的行为更像数组,支持 map()、reduce() 和 forEach() 等方法。其他序列类型也是如此,如 <int> 和类似类型。QList
  • 扩展了qmltc以支持更多的 QML 结构,特别是翻译绑定、内联组件、单子和 C++ 定义信号的信号处理器。
  • QML 脚本编译器可以处理更多的构造。尤其是
    • console.log() 和
    • letconst
    • qsTr() 和
    • 字符串的 arg()
    • 所有剩余的位运算符和移位运算符
    • 指数运算符
  • 使用新的环境变量QML_DISK_CACHE 可以更精细地控制QML 磁盘缓存
  • 新增了公共 CMake API:
    • 引入Qt CMake 策略,为资源前缀设置更好的默认值。如果将QTP0001策略设置为NEW ,QML 引擎将始终能够在资源文件系统中找到您的 QML 模块。
  • 现在,qt_generate_deploy_qml_app_scriptCMake 函数最好接受一个名为 OUTPUT_SCRIPT 的参数。传递旧的 FILENAME_VARIABLE 已被弃用。

Qt Quick 3D 模块

  • 为模型添加了自动细节级别 (LOD) 支持。这允许在导入资产时生成简化版本的网格,然后在渲染时自动选择适当的层次。
  • 已添加显式细节级别(LOD)支持,可根据摄像机距离控制模型的不透明度。
  • 添加了ExtendedSceneEnvironment ,内置景深、调色、发光、渐晕、镜头耀斑等效果。这些特效是一起执行的,与单个独立的后期处理特效(每个特效需要一个或多个渲染通道)相比,效率更高。
  • 增强了DebugView ,其中包含渲染统计信息、活动网格和纹理资产列表、实时渲染传递信息,以及用于交互式切换设置的控件,如线框模式和材质覆盖,可从DebugSettings 获取。
  • 已添加DebugSettings ,可通过SceneEnvironment 获取,允许对线框模式和材质覆盖等设置进行编程控制,以便只渲染基于物理材质的某些方面。
  • 添加了InfiniteGrid ,在水平面上实现了带淡出功能的无限网格。
  • 添加了内置的简单雾化支持,可通过SceneEnvironment 获取。启用后,在渲染场景中的模型时会应用深度或高度雾化效果。
  • 改进了使用实例渲染时的拾取功能。
  • 添加了顶点颜色支持,可用于PrincipledMaterialSpecularGlossyMaterial
  • 反射探针:添加了对使用提供的立方体贴图而非渲染场景的支持。
  • 增强了后处理效果,以便在运行时对着色器源文件 URI 的变化做出正确反应。
  • 为运行时生成的材质着色器数据添加了基于磁盘的持久缓存。预计这将缩短应用程序启动和视图更改时间。

Qt WebView 模块

Qt Multimedia 模块

  • 6.4 中的技术预览版 ffmpeg 媒体后端已成为 macOS、Windows、Android 和 Linux(Yocto 发行版除外)的默认后端。本地后端仍可使用,但支持有限。
  • 引入QScreenCapture 类,这是一种新的视频输入类型。可将QScreenCaptureQMediaCaptureSession 的视频直接输出到QMediaRecorderQVideoWidget 等输出端。屏幕捕捉功能仅适用于 ffmpeg 媒体后端。

平台变更

网络组装

  • Qt Online Installer 中添加了启用多线程的二进制包。
  • 添加了对文件系统访问API 的支持。如果浏览器支持,QFileDialog::getOpenFileContent() 和QFileDialog::saveFileContent() 等文件对话框调用现在将使用此 API。
  • 已添加对本地字体访问API 的支持。Qt 现在将在支持此 API 的浏览器上使用本地字体。
  • Qt Multimedia 添加了视频播放技术预览和摄像头支持。
  • 为 WebAssembly SIMD 添加了配置选项:-feature-wasm-simd128。
  • 为 WebAssembly 异常添加了配置选项:-feature-wasm-exceptions
  • 发布了Qt Web Utils的实用功能和 Qt 在 Web 上的使用示例。
  • QTest WebAssembly 现在默认使用 emrun。WebAssembly 专用脚本驱动自动测试的执行。

桌面平台

视窗平台

  • 可以设置环境变量 QT_WIN_DEBUG_CONSOLE,以便在控制台窗口中查看从命令行启动的 GUI 应用程序的 stdout/stderr 消息。将其设置为newattach

macOS

Linux 上的 Wayland 客户端

  • 现在支持用于合成器的 fractional_scale_v1 协议,该协议可为客户端建议分数比例因子。

移动平台

安卓

  • 将 Gradle 更新至 8.0,将 Android Gradle Plugin (AGP) 更新至 7.4.1(需要 JDK 11 或以上版本)。
  • 将 NDK 更新至 r25b (25.1.8937393)。
  • 现在支持的版本列表为 Android 8.0(API 26)或更高版本。
  • 将最低平台构建 sdk 版本提升至 33 (QT_ANDROID_API_VERSION)。
  • 利用 Qt 文件/目录设施支持对内容方案 URI 进行更多操作。
  • 在 Android Scoped Storage 下对QStandardPaths 进行修复和文档更新。
  • 从 Qt 而非 Android 系统打印 Qt JNI 异常。
  • 修复了对 APK 签名方案 v2 的支持。

iOS

嵌入式平台

Boot to Qt

  • Boot to Qt 栈更新为使用 yocto 4.1.2 (langdale)。
  • 支持 macOS 主机使用基于 Docker 的工具链。
  • 更新了目标硬件的支持级别,现在有多个级别的支持适用于特定的硬件和操作系统组合。

API 更改列表

这些页面概述了 Qt 6.5 中的 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.