本页内容

Qt 6.0 的新功能

Qt 6 中的构建系统变更

现在从源代码构建 Qt 需要 CMake 和 Ninja。有关此项以及 configure 中的其他更改的更多详细信息,请参阅《Qt 6 中的构建系统变更》。

受支持模块的变更

与 Qt 5 相比,Qt 6.0 经过了精简,某些模块已不再包含在 Qt 6.0 的默认安装中。由于 Qt 采用了模块化结构,未来 Qt 6 的版本中可能会出现新的模块或原 Qt 5 中的模块。如需了解更多信息,请访问“所有模块”页面。

《Qt 6 中 Qt 模块的变更》列出了 API 的变更内容。

Qt 6.0 中的新模块

以下是 Qt 6.0 中的新模块。

Qt 6.0 中已移除的模块

以下是 Qt 5 中包含但未收录于 Qt 6.0 的模块。这些模块可能会在 Qt 6 的未来版本中重新引入。

模块qmake备注
Android 版 Qt 扩展androidextras参见Qt Extras 模块的变更
Qt Bluetoothbluetooth
Qt Chartscharts
Qt Data Visualizationdatavisualization
QtGraphical Effects 可通过Qt 5 Compatibility APIs 获取:Graphical Effects 。
See successors in Qt 6.5: MultiEffect and Qt Quick Effect Maker.
Qt Locationlocation
Qt Mac 扩展macextras参见Qt Extras 模块的变更
Qt Multimediamultimedia
Qt Multimedia 控件multimediawidgets
Qt NFCnfc
Qt Positioningpositioning
Qt 采购purchasing
Qt Quick 扩展已合并到 Qt Quick Controls
Qt Remote Objectsremoteobjects
Qt Scriptqtscript
Qt SCXMLscxml
Qt Script 工具scripttools
Qt Sensorssensors
Qt Serial Busserialbus
Qt Serial Portserialport
Qt Speechtexttospeech
Qt WebChannelwebchannel
Qt WebEnginewebenginecore
Qt WebSocketswebsockets
QtWebViewwebview
Qt Windows Extraswinextras参见Qt Extras 模块的变更
Qt X11 扩展x11extras参见Qt Extras 模块的变更
Qt XML 模式xmlpatterns

Qt 6.0 的新功能

Qt Qml 模块

  • QML 语言
    • 新增了对 JavaScript URL 对象的支持,可在 QML JavaScript 代码中提供原生 URL 处理功能。
    • 允许不指定版本进行导入。如果在 QML 导入语句中省略版本号,将自动导入该模块的最新版本。
  • 模块系统
    • 在 qmldir 文件中添加了import 指令。这支持可选导入和声明式模块导入,允许模块显式声明其依赖关系。
    • 新增了 `qmlRegisterModuleImport()`,用于以过程化方式向模块添加导入。除非您清楚自己在做什么,否则请勿使用此功能。
    • 新增对在 QML2_IMPORT_PATH 环境变量中指定资源(:/some/path )路径的支持。
    • QML 插件现在可以是可选的。qmldir 文件中的optional 指令指定,如果模块的类型已存在于二进制文件中,则无需加载该插件。这通常适用于QtQuick 或QtQml 之类的模块。
    • 引入了对纯重定向型 QML 模块的支持,此类模块仅导入并重新导出其他模块,而不提供自己的类型。
  • 类型系统
    • 为 `QQmlListProperty` 引入了覆盖行为 `QML_LIST_PROPERTY_ASSIGN_BEHAVIOR_{APPEND|REPLACE|REPLACE_IF_NOT_DEFAULT}`,从而能更好地控制对 C++ 声明的列表属性进行的 QML 操作。
    • 新增对用户自定义序列类型的支持。现在可以通过QML_SEQUENTIAL_CONTAINER 在QML中直接注册和使用自定义列表类型,从而实现类型安全的列表属性,而无需将元素封装在JavaScript对象中。
    • 引入了用于 QML 类型版本控制的双组件修订格式(Major、Minor),从而能够更精细地控制 API 的演进。
    • 允许通过 `QML_EXTENDED` 扩展单例。
    • 允许通过QML_EXTENDED_NAMESPACE 将命名空间作为类型的扩展。
    • 允许通过 `QML_FOREIGN_NAMESPACE` 使用来自外部命名空间的 QML 类型。

API 变更列表

这些页面概述了 Qt 6.0 中的 API 变更:

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