【问题标题】:Error trying to load qml from resource尝试从资源加载 qml 时出错
【发布时间】:2013-12-31 08:02:06
【问题描述】:

我做了一个从本地文件系统加载 qml 的应用程序,它工作正常,但现在我试图将其更改为从 qml 加载,但它永远找不到我的文件。

我已经查看了网络并尝试了一些解决方案,但没有任何效果。

我的 qml 文件位于项目 qml/MyProject/main.qml 的子目录中 然后我创建了一个资源文件并添加了前缀“/”(也尝试了不同的名称),然后将我的 qml 文件添加到其中。

然后我把生成的qtquick2applicationviewer.cppsetMainQmlFile改成:http://pastebin.com/kRJDJACW

然后我尝试以下几行从资源中加载 qml:

viewer.setMainQmlFile("qrc:/main.qml");
viewer.setMainQmlFile("qrc://main.qml");
viewer.setMainQmlFile("qrc:/other_prefix/main.qml");
viewer.setMainQmlFile("qrc:/qml/MyProject/main.qml");
viewer.setMainQmlFile("qrc://qml/MyProject/main.qml");

我的资源文件:http://pastebin.com/1sjUqk2T

Qt 版本:5.2/QtCreator 3.0

我在做什么啊?

【问题讨论】:

  • 您为什么使用应用程序查看器?不使用它可以工作吗?请出示您的项目文件。
  • 您可以设置QML_IMPORT_TRACE 以获取更详细的加载信息。
  • @LaszloPapp 实际上我使用的是 QtCreator 生成的默认模板,当我要求创建一个快速应用程序时,这个查看器是什么意思?
  • 已解决,谢谢各位。出于某种原因,我的资源文件在“其他文件”中,而不是在 Qt Creator 的“资源”区域中,所以我添加了一个新文件并且它有效。谢谢!

标签: c++ qt qt-creator qml qmake


【解决方案1】:

您显示的代码看起来不错,至少以下行:

viewer.setMainQmlFile("qrc:/main.qml");

错误可能在其他地方。您没有共享您的项目文件,但原因可能是您的资源中没有正确的该文件。

您需要在 qmake 文件中使用以下条目:

RESOURCES = main.qrc

【讨论】:

    【解决方案2】:

    已解决,谢谢各位。出于某种原因,我的资源文件在“其他文件”中,而不是在 Qt Creator 的“资源”区域中,所以我添加了一个新文件并且它有效。谢谢!

    【讨论】:

    • 抱歉,忘记了...现在已修复
    猜你喜欢
    • 2019-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多