Я написал приложение Qt Quick Desktop на c ++ qnd Qt Creator (QML) для Windows7. Сейчас
Я должен развернуть его, и мне нужно скрыть файлы 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();
}
Я попытался прочитать файл myMain.qml из Resources.qrc, например:
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 в:
Не могли бы вы объяснить мне, что случилось?
и что я должен сделать, чтобы использовать .qrc в c ++ и qml?
Большое спасибо:)
Вы пробовали это:
view.setSource(QUrl("qrc:/qml/GenericHostApplicationQML/myMain.qml"));
Когда вы делаете это:
QUrl(":/qml/GenericHostApplicationQML/myMain.qml");
путь является «file: ///qml/GenericHostApplicationQML/myMain.qml»
Других решений пока нет …