LINUX.ORG.RU

[Qt] Проблема с ресурсами в Windows


0

0

Ставлю бэкграунд для QMdiArea:

mdiArea = new QMdiArea;
mdiArea->setBackground(QBrush(QImage(":images/background.jpg")));

В директории с проектом есть файл application.qrc, в сам проект добавляю следующее:

RESOURCES += ../sources/application.qrc

Файл application.qrc:

<!DOCTYPE RCC><RCC version=«1.0»>
<qresource>
<file>images/background.jpg</file>
</qresource>
</RCC>

Под линуксом всё работает, а в винде не картинка, а просто серый фон. Кто-нибудь сталкивался с таким?

★★

Ответ на: комментарий от k0l0b0k

> м.б. windows не умеет?

Это предположение или факт? ))

SaBo ★★ ()
Ответ на: комментарий от namezys

> что-то мне ваш url до ресурса не нравится

Что именно смущает?

Если "../" в начале, то структура директорий у меня такая:

sources - сам код
build - билд пол линукс
win - билд под винду

SaBo ★★ ()
Ответ на: комментарий от TERRANZ

> Не :images/ , а :/images/

Тот же результат - под линуксом шурует, под виндой - нет.

SaBo ★★ ()
Ответ на: комментарий от adamix

> Предполагаю что в виндовом SDK нет поддержки libjpeg.
Тоже об этом думал... А там есть какой-нибудь способ это проверить?
(я просто в винде вообще ничего не понимаю :))

SaBo ★★ ()
Ответ на: комментарий от TERRANZ

> попробуй вместо jpg записать отконрченные в png

В Винде появилось!

Но зато с линуксом теперь проблема:

Я в линуксе запускаю свою программу так:

LD_PRELOAD=libpng.so.14 ./prog

Иначе, при использовании стандартного диалога QMessageBox::critical в консоль вылазит следующая ошибка:

(<unknown>:12629): Gtk-WARNING **: Error loading theme icon 'gtk-dialog-error' for stock: Произошла фатальная ошибка при чтении файла изображения формата PNG: Incompatible libpng version in application and library

(обсуждение: http://www.linux.org.ru/forum/development/5333554)

Теперь если же я запускаю с LD_PRELOAD, то у QMessageBox нет проблем, а у QMdiArea бэкграунд не ставится, при этом выводит в консоль:

libpng warning: Application was compiled with png.h from libpng-1.2.15beta5
libpng warning: Application is running with png.c from libpng-1.4.3
libpng warning: Incompatible libpng version in application and library

Если я запусаю без LD_PRELOAD, то появляется проблема с QMessageBox, но с QMdiArea всё ок.

SaBo ★★ ()

><file>images/background.jpg</file>

jpg


Поддержка большинство графических форматов(кроме png) в плагинах, а их нужно правильно размещать и распространять.
Читай в букваре про deploy на Windows.

gogi ()

imageformats потому что нужно в папку с бинарем положить

Gorthauer ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.