Встроенные JPG-ресурсы не загружаются в приложение Qt - PullRequest
7 голосов
/ 11 февраля 2010

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

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

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

Что мне здесь не хватает? DLL на машине не разработчика? A

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

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

Ответы [ 2 ]

11 голосов
/ 11 февраля 2010

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

Скопируйте qjpeg4.dll в папку плагинов на вашем флеш-накопителе.

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

В файле qt.conf укажите путь к директории ваших плагинов:

[Paths]
plugins=./plugins
0 голосов
/ 20 мая 2014

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

...