Встроенные ресурсы JPG не загружаются в приложение Qt

У меня есть приложение Qt, которое имеет некоторые встроенные файлы JPG, которые я хочу отобразить. Когда я компилирую и запускаю обе версии debug и release на своей машине, все работает отлично. Когда я копирую приложение на флэш-накопитель и запускаю его оттуда на своей машине, он работает нормально. На флэш-накопителе и другой машине разработчика: OK. На флэш-накопителе на третьей машине, не являющейся разработчиком:изображения!

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 );
    ...
}

Я подтвердил, что снимки добавляются в исполняемый файл, комментируя строку ресурсов в.PRI-файл. Размер двоичного файла уменьшается на размер изображений плюс бит; когда я запускаю приложение, изображения не отображаются. Я не комментирую строку ресурсов, и все работает, как описано выше.

что я пропустила? DLL на машине не разработчика? А

окружающая среда:

  • Win XP
  • в Qt 4.6.1
  • Visual Studio 2008
  • Qt Creator 1.3.1

2 ответов


для загрузки изображений требуется плагин jpeg. Если у Вас установлен Qt, они будут в %QTDIR%\plugins\imageformats.

копировать qjpeg4.DLL в папку plugin на вашей флешке.

root/app.exe
root/qt.conf
root/plugins/imageformats/qjpeg4.dll

в qt.conf файл установить путь к плагинам dir:

[Paths]
plugins=./plugins

в то время как самый точный ответ дается уже, вместо того, чтобы развертывать больше DLL и структуру папок, мне гораздо проще просто конвертировать изображения в png...нет DLL формата изображения и т. д. требуется, если вы используете пнгс.