12

Windows7のc++qnd Qt Creator(QML)でQtQuickDesktopアプリケーションを作成しました。今、私はそれをデプロイする必要があり、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を使用するために私がしなければならないことは何ですか?

どうもありがとう:)

4

1 に答える 1

22

これを試してみましたか:

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

これを行うとき:

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

パスは「file:/// qml / GenericHostApplicationQML/myMain.qml」です。

于 2012-11-26T16:23:31.533 に答える