Ho scritto un'applicazione Qt Quick Desktop in C++ qnd Qt Creator (QML) su Windows7. Ora devo dire che devo distribuirlo e ho bisogno di nascondere i file qml e le immagini (significa: metterli in risorse e così via)Come usare qrc in applicazione C++ e QML?
Ho letto che c'è un ottimo modo per farlo con. file qrc. Ho letto la documentazione su quei file, e ha creato uno per la mia domanda, che assomiglia a questo:
<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>
Nel main.cpp, sto caricando il file Main.qml come:
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();
}
ho provato a leggere il file myMain.qml dal resources.qrc come:
view.setSource(QUrl(":/qml/GenericHostApplicationQML/myMain.qml"));//I added the ":/"
ma ho ottenuto questo errore:
file:///qml/GenericHostApplicationQML/myMain.qml: File not found
e quando ho provato questo:
sto ottenendo questo:
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
Sembra che la mia Qt non sa cosa fare con : ": /".
devo utilizzare il file .qrc in:
- Caricamento del file myMain.qml
- Utilizzando l'importazione in QML file in myMain.qml
- Utilizzando le immagini nei miei file QML
Potresti spiegarmi cosa c'è che non va ?? e cosa devo fare per usare il .qrc sia in C++ che in qml?
Grazie mille :)
Sono quasi sicuro che non esiste un modo per nascondere effettivamente il codice QML, anche se si utilizza il file di risorse, tale codice è ancora visibile a chiunque ne che ispeziona il tuo eseguibile, cioè non è compilato, crittografato o trasformato in codice binario in alcun modo. – johnbakers