【问题标题】:What's the preferred way to include QML sources in your application build?在应用程序构建中包含 QML 源的首选方式是什么?
【发布时间】:2010-10-11 10:54:01
【问题描述】:

我正在使用混合 UI 技术(主要是 C++,包括一些 QML 组件)构建一个应用程序。

假设我有一个 QML 项目,我想使用如下语法在 QDeclarativeView 中显示它:

view = new QDeclarativeView(QUrl::fromLocalFile("foobar.qml"));

我已将 foobar.qml 添加到我在 Qt Creator 中的项目中,它会自动将此行添加到 .pro 文件中:

OTHER_FILES += \
    foobar.qml

现在,您可能希望将文件包含到项目中意味着应该将其复制到构建文件夹,但事实并非如此,并且当我运行应用。我不想添加自定义构建步骤只是为了复制 QML 源代码,所以有一些“事实上的”方法吗?

【问题讨论】:

  • 我有同样的问题,想从本地文件而不是 qrc 加载 qml,但 它没有复制到构建文件夹

标签: build qt4 qmake qml


【解决方案1】:

一个明显的解决方案是通过 Qt 的resource system 包含 QML 源代码。这在有关deploying QML based applications 的文档页面上有所暗示。

编辑:这是complete solution。我应该学习 RTFM。

【讨论】:

  • 这就是我在我的应用程序中所做的。基本上类似于view = new QDeclarativeView(QUrl("qrc:/qml/scene.qml"));
  • 是的,资源是正确的选择。除非应用程序存在于受保护的环境中 - 或者您不在乎,在这种情况下您可以并排发布。在 Mac Bundles 中,您通常会将它们放在 bundle 资源文件夹中
  • 如果我想使用qml文件而不是qrc怎么办?我希望将 qml 文件复制到构建目录。
【解决方案2】:

你使用影子构建吗?如果是这样,应用程序将构建在与源代码平行的目录中。对于测试,您可以更改 Qt Creator 中的工作目录(左侧栏中的项目,然后执行您的构建目标)。 使用资源似乎是万无一失的,但每次更改任何资源时都需要重新构建。

【讨论】:

    猜你喜欢
    • 2014-05-28
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 2011-08-22
    • 2013-02-08
    • 1970-01-01
    相关资源
    最近更新 更多