微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我参与了一个项目,其中有一名设计师在 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中有一个名为Qt Design Studio Manual的章节。

基本上,您只需将 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 属性保留为指向 root 如上所述,则不需要在 QML 文件中导入表单目录。否则,您添加 import "qrc:/forms",以便导入目录,而不是单个文件。

import QtQuick 2.0

StatusBarForm {
}

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。