1

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

有人会这么好心地指出一个涵盖这个的教程吗?还是维基页面?或网络上的其他一些资源,它解释了如何做我想做的事情,即在我的 .pro 项目的 QtQuick QML 文件中使用来自 .qmlproject 的 .ui.qml 资源。

感谢您提供所有指针。

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

我有 2 个项目,名为 marge 和 patty。Patty 是.qmlprojectQt Design Studio 中的设计师正在开发的,它包含.ui.qml文件中的 UI 表单以及相关的图形资产和主题等。它位于自己的 git 存储库中。另一方面,Marge 是.pro我在 Qt Creator 中开发的应用程序——它是 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 {
}

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

4

1 回答 1

1

Qt Design Studio Manual中有一个名为Converting UI Projects to Applications的章节。

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

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

对更新部分的回答:

您可以在资源文件中使用文件标签的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 资源文件

于 2021-04-26T05:30:39.880 回答