如何在 Qt Creator .pro 项目中使用来自 Design Studio 的 .qmlproject .ui.qml 表单?

how to use .qmlproject .ui.qml forms from Design Studio in Qt Creator .pro project?

我参与了一个项目,该项目有一位设计师在 Design Studio 中开发 .ui.qml 表单(以及相关资产),而我作为开发人员正在处理现有的 Qt Creator .pro 项目。我想将这两个项目保存在不同的存储库中。

有人会好心指出涵盖此内容的教程吗?或者维基页面?或者网络上的一些其他资源解释了如何做我想做的事情,即使用我的 .pro 项目中 QtQuick QML 文件中的 .qmlproject 中的 .ui.qml 资源。

感谢所有指点。

-----更新更多细节-----

我有 2 个项目,名为 marge 和 patty。 Patty 是一个 .qmlproject,由设计师在 Qt Design Studio 中开发,包含 .ui.qml 文件中的 UI 表单以及相关的图形资产和主题等。它在其拥有 git 存储库。另一方面,Marge 是我在 Qt Creator 中开发的 .pro 应用程序——它是 QtQuick QML 和支持 C++ 的混合体。我认为这是一种相当典型的方法,但如果我正在做的事情让我的生活变得更加困难,请指出不同的方向。

在 Marge 的 qml.qrc 文件中,我添加了一个包含 3 个条目(到目前为止)的元素,这些条目引用了 patty 项目中的 .qml 和 .ui.qml 资源:

<qresource prefix="/forms">
  <file>../patty/StatusBarForm.ui.qml</file>
  <file>../patty/Tempo.qml</file>
  <file>../patty/TempoForm.ui.qml</file>
</qresource>

我确实在 marge 项目导航器的 Qt Creator 中看到了这些资源,但我不知道现在如何在 marge 中的其他 QML 文件中使用这些资源。我希望能够有一个 StatusBar.qml 文件,例如,它包含如下内容:

import QtQuick 2.0
import "qrc:/forms/../patty/StatusBarForm.ui.qml"

StatusBarForm {
}

这对我不起作用,这就是我想要弄清楚的。

有一章名为Converting UI Projects to Applications in Qt Design Studio Manual

基本上,您只需将 QML 文件和相关资源从 Qt UI Quick 项目(Design Studio 项目)复制到基于 qmake 的应用程序项目(.pro 项目),并将它们添加到 Qt 资源文件( s) 在里面。

仅供参考:Qt Creator 支持添加新资源文件以及将现有文件和现有目录添加到资源。

更新部分的答案:

您可以在资源文件中使用 file 标签的 alias 属性。

<qresource prefix="/">
  <file alias="StatusBarForm.ui.qml">../patty/StatusBarForm.ui.qml</file>
</qresource>

并且如果您将 qresource 标记的 prefix 属性保留为指向根目录,则无需在 QML 文件中导入表单目录。否则,您添加 import "qrc:/forms",这样您导入的是一个目录,而不是单个文件。

import QtQuick 2.0

StatusBarForm {
}

为外部资源添加一个单独的资源文件是有意义的,例如patty.qrc,而不是将所有内容收集到默认生成的 qml.qrc。 (Qt Creator: 右击项目顶部 -> 添加新... -> Qt -> Qt 资源文件)