如何在QtCreator.pro项目中使用DesignStudio中的.qmlproject.ui.qml表单



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

会不会有人好心地指着一本涵盖这方面的教程?还是wiki页面?或者网络上的其他资源,解释如何做我想做的事情,即使用.pro项目中QtQuick qml文件中.qml项目中的.ui.qml资源。

谢谢你的指点。

-----更新以获取更多详细信息-----

我有两个项目,分别叫marge和patty。Patty是一个.qmlproject,由设计师在Qt Design Studio中开发,包含.ui.qml文件中的UI表单以及相关的图形资产和主题等。它在自己的git存储库中。另一方面,Marge是我在QtCreator中开发的.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 {
}

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

Qt Design Studio手册中有一章名为"将UI项目转换为应用程序"。

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

仅供参考: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中

最新更新