Tengo una aplicación Qt que tiene algunos archivos JPG incrustados que quiero mostrar. Cuando compilo y ejecuto las versiones de depuración y lanzamiento en mi máquina, todo funciona perfectamente. Cuando copio la aplicación en una memoria USB y la ejecuté desde allí en mi máquina, funciona bien. En la memoria USB y la máquina de otro desarrollador: OK. En la memoria USB de una tercera máquina que no es de desarrollador: ¡no hay imágenes!Recursos JPG incrustados que no se cargan en la aplicación 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);
...
}
He confirmado que las imágenes están siendo añadidos al ejecutable comentando la línea de recursos en el archivo .pri. El tamaño del binario cae por el tamaño de las imágenes más un poco; cuando ejecuto la aplicación, las imágenes no aparecen. Desconecto la línea RECURSOS y todo funciona como se describe arriba.
¿Qué me falta aquí? ¿Una DLL en la máquina que no es del desarrollador? Un entorno
:
- Win XP
- Qt 4.6.1
- Visual Studio 2008
- Qt Creator 1.3.1
Lo he experimentado antes y esta es la solución con la que tropecé. OP, tenga en cuenta que la estructura del directorio puede ser importante. –
BTW, copió imageformats/qjpeg4.dll en la raíz (como en el ejemplo anterior) y dejó fuera qt.conf y root/plugins. – dwj
Sí, esto podría ser un poco redundante, pero no recuerdo el orden exacto de búsqueda Qt hace :). – Eugene