Встроенные ресурсы 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 формата изображения и т. д. требуется, если вы используете пнгс.