Napisałem aplikację Qt Quick Desktop w języku C++ qnd Qt Creator (QML) na Windows7. Teraz Muszę go wdrożyć i muszę ukryć pliki qml i obrazy (czyli: umieścić je w zasobach itp.).Jak korzystać z qrc w aplikacjach C++ i QML?
Przeczytałem, że jest to świetny sposób na zrobienie tego. pliki qrc. Czytam dokumentację na temat tych plików i stworzył jedną dla mojej aplikacji, która wygląda następująco:
<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>
W main.cpp, mam ładowania plików Main.qml jak:
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();
}
próbowałem odczytać pliku myMain.qml z Resources.qrc jak:
view.setSource(QUrl(":/qml/GenericHostApplicationQML/myMain.qml"));//I added the ":/"
ale mam Dostałem ten błąd:
file:///qml/GenericHostApplicationQML/myMain.qml: File not found
i kiedy próbowałem to:
Dostaję to:
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
Wydaje się, że mój Qt nie wie, co zrobić z : ": /".
muszę użyć pliku .qrc w:
- Ładowanie pliku myMain.qml
- Korzystanie import do QML pliki myMain.qml
- Używanie obrazów w moich plikach QML
Czy możesz mi wyjaśnić, co jest nie tak? i co muszę zrobić, aby korzystać z .qrc zarówno w językach C++ jak i qml?
dziękuję :)
Jestem prawie pewien, że nie ma sposobu, aby faktycznie ukryć kod QML, nawet jeśli korzystasz z pliku zasobów, ten kod jest nadal widoczny dla anyo ne, który sprawdza twój plik wykonywalny, tzn. nie jest skompilowany, zaszyfrowany lub przekształcony w kod binarny w jakikolwiek sposób. – johnbakers