繁体   English   中英

如何在c ++和QML应用程序中使用qrc?

[英]How to use qrc in c++ and QML application?

我在Windows7上用c ++ qnd Qt Creator(QML)编写了一个Qt Quick Desktop应用程序。 现在我必须部署它,我需要隐藏qml文件和图像(意思是:将它们放在资源等中)

我已经读过使用.qrc文件有一个很好的方法。 我阅读了有关这些文件的文档,并为我的应用程序创建了一个文件,如下所示:

<RCC>
<qresource prefix="/">
    <file>qml/GenericHostApplicationQML/myMain.qml</file>
    <file>qml/GenericHostApplicationQML/content/PressAndHoldButton.qml</file>
    <file>qml/GenericHostApplicationQML/content/TextButton.qml</file>
    <file>qml/GenericHostApplicationQML/content/pics/advancedsettings.png</file>
    <file>qml/GenericHostApplicationQML/content/pics/cnruninstall.png</file>
    <file>qml/GenericHostApplicationQML/content/pics/dialog_cancel.png</file>
    <file>qml/GenericHostApplicationQML/content/pics/folder_explore.png</file>
    <file>qml/GenericHostApplicationQML/content/pics/gnome_session_switch.png</file>
    <file>qml/GenericHostApplicationQML/content/pics/mail2_send.png</file>
    <file>qml/GenericHostApplicationQML/content/pics/Picture1.png</file>
    <file>qml/GenericHostApplicationQML/content/pics/Picture2.png</file>
</qresource>

在main.cpp中,我正在加载Main.qml文件,如:

int main(int argc, char *argv[])
{
   QApplication app(argc, argv);
   QDeclarativeView view;
   view.setSource(QUrl::fromLocalFile("qml/GenericHostApplicationQML/myMain.qml"));
   view.show();
   return app.exec();
}

我试图从Resources.qrc中读取myMain.qml文件,如:

view.setSource(QUrl(":/qml/GenericHostApplicationQML/myMain.qml"));//I added the ":/"

但我有这个错误:

file:///qml/GenericHostApplicationQML/myMain.qml: File not found 

当我尝试这个:

view.setSource(QUrl::fromLocalFile(":/qml/GenericHostApplicationQML/myMain.qml"));

我明白了:

file:///C:/Users/ayalafre/Desktop/ghaQML/GenericHostApplicationQML-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK__Release/:/qml/GenericHostApplicationQML/myMain.qml: File not found

好像我的Qt不知道该怎么办:“:/”。

我必须使用.qrc文件:

  • 加载myMain.qml文件
  • 使用导入到myMain.qml中的qml文件
  • 在我的qml文件中使用图像

你能解释一下有什么问题吗? 以及为了在c ++和qml中使用.qrc我必须做些什么?

非常感谢:)

你试试这个:

view.setSource(QUrl("qrc:/qml/GenericHostApplicationQML/myMain.qml"));

当你这样做:

QUrl(":/qml/GenericHostApplicationQML/myMain.qml");

路径是“file:///qml/GenericHostApplicationQML/myMain.qml”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM