将 Qt 5 项目转换为 Qt 6 项目
Qt 设计工作室支持使用 Qt 5 创建 UI,同时也支持使用 Qt 6。但是,为了让一个使用 Qt 5 的项目使用 Qt 6,您需要了解这个主题中讨论的一些差异和问题。
字体加载器
使用 Qt 设计工作室 2.1 创建的项目使用 FontLoader
的方式在 Qt 6 中不受支持。具体来说,Qt 6 中 name
属性是只读的。因此,您必须修改 Constants.qml
文件以正确加载字体。您可以删除 FontLoader
或改用 source
属性来代替 name
属性。
要删除 FontLoader
,请从 Constants.qml
文件中删除以下行
readonly property FontLoader mySystemFont: FontLoader { name: "Arial" }
然后删除包含对 mySystemFont 的引用的以下行
readonly property font font: Qt.font({ family: mySystemFont.name, pixelSize: Qt.application.font.pixelSize }) readonly property font largeFont: Qt.font({ family: mySystemFont.name, pixelSize: Qt.application.font.pixelSize * 1.6 })
或者,您可以保留 FontLoader
并使用 source
属性来代替 name
属性。如果您不确定如何操作,您可以替换 Constants.qml
文件,使用 Qt 设计工作室 2.2 创建一个新的文件。
Qt Quick Studio 组件
Qt 6 中提供了 Qt Quick Studio 组件,除了 Iso Icon 组件。它指定 ISO 7000 图标库中的一个图标作为 Picture 组件,这在 Qt 6 中不受支持。因此,Iso Icon 在 Qt 6 中也不受支持。
Qt Quick Studio 杂项
以下 2D 效果在 Qt 6 中不可用
- 混合
- 内阴影
- 除了模糊效果以外
- 方向模糊
- 快速模糊
- 高斯模糊
- 蒙版模糊
- 递归模糊
- 径向模糊
- 缩放模糊
为过时的效果提供了替代品以保持基于Qt 5的应用程序运行,但效果将不会按预期渲染。
Qt Quick 3D
在Qt 6中,不能使用导入import QtQuick3D 1.15
,它导入了一个基于Qt 5的Qt Quick 3D模块。Qt 6不需要导入版本,因此默认不使用。要将基于Qt 5的项目转换为基于Qt 6的项目,您必须调整所有使用Qt Quick 3D的.qml
文件中的导入,删除版本号。
有关Qt Quick 3D变更的更多信息,请参阅变更文件。
QML
有关Qt 5和Qt 6之间QML变更的一般信息,请参阅
最显著的变化是Qt 6不再需要导入版本了。
Qt Design Studio
仅支持Qt 6的项目在.qmlproject
文件中被标记为qt6Project: true
。如果您在项目创建向导中选择Qt 6
,则会添加此行。如果项目文件不包含此行,项目将默认使用Qt 5和一个Qt 5工具集。您可以在项目的运行设置
中更改此设置,您可以在此随处选择Qt 6
。
使用Qt 6特定功能的项目无法与Qt 5一起工作。这意味着打算同时与Qt 5和Qt 6一起工作的项目需要为其导入指定版本。
因此,如果您想使用Qt Quick 3D,使用与Qt 5和Qt 6相同的项目是不可能的。
在某些Qt许可证下可用。
了解更多信息。