Ho un'applicazione Qt con alcuni file JPG incorporati che desidero visualizzare. Quando compilo ed eseguo entrambe le versioni di debug e release sulla mia macchina, tutto funziona perfettamente. Quando copio l'applicazione su una pen drive e la eseguo da lì sulla mia macchina, funziona perfettamente. Sulla chiavetta e sulla macchina di un altro sviluppatore: OK. Sulla chiavetta su una terza macchina non sviluppatore: nessuna immagine!Risorse JPG incorporate non caricate nell'applicazione Qt
proj.pri
RESOURCES += ./proj.qrc
proj.qrc:
<RCC>
<qresource prefix="/myApp">
<file>Gui/Resources/logo.jpg</file>
<file>Gui/Resources/another_image.jpg</file>
</qresource>
</RCC>
main.cpp:
{
...
QImage *logo = new QImage(":/myApp/Gui/Resources/logo.jpg");
QImage *image = new QImage(":/myApp/Gui/Resources/another_image.jpg");
myClass *d1 = new myClass("Some Text", 48, 30, logo);
myClass *d2 = new myClass("Some More Text", 48, 30, another_image);
...
}
mi hanno confermato che le immagini vengono aggiunte al file eseguibile commentando la linea RISORSE nel file .pri. La dimensione del file binario diminuisce della dimensione delle immagini più un po '; quando eseguo l'applicazione, le immagini non vengono visualizzate. Annullo la riga RISORSE e tutto funziona come descritto sopra.
Cosa mi manca qui? Una DLL sul computer del non sviluppatore? Un
Ambiente:
- Win XP
- Qt 4.6.1
- Visual Studio 2008
- Qt Creator 1.3.1
L'ho già sperimentato e questa è la soluzione su cui sono incappato. OP, tieni presente che la struttura delle directory può essere importante. –
BTW, copiato imageformats/qjpeg4.dll in root (come nell'esempio sopra) e lasciato fuori qt.conf e root/plugins. – dwj
Sì, potrebbe essere un po 'ridondante, ma non ricordo l'ordine esatto di ricerca Qt :). – Eugene