Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Иконки в приложении и QIcon::fromTheme()
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
RazrFalcon
Имеем:
actionConfig->setIcon(QIcon::fromTheme("configure", QIcon(":/configure.svgz"))); // из доков
Вроде все верно. Если я на лине - то будет грузится первая иконка, если на винде - 2-я.
Но у меня в консоль сыпятся ошибки если я использую следующее:
win32:RESOURCES   += icons/icons.qrc
Cannot open file ':/configure.svgz', because: Unknown error
То есть он не может найти иконки которые я пихаю в ресурсы. Но мне то не нужны они в ресурсах на линуксе. Как только убираю win32 - сразу все работает.
Как решить? делать ifdef для иконок как то не хочется...

Sokoloff
Цитата(RazrFalcon @ 17.11.2011, 10:33) *
Имеем:
actionConfig->setIcon(QIcon::fromTheme("configure", QIcon(":/configure.svgz"))); // из доков
Вроде все верно. Если я на лине - то будет грузится первая иконка, если на винде - 2-я.
Но у меня в консоль сыпятся ошибки если я использую следующее:
win32:RESOURCES   += icons/icons.qrc
Cannot open file ':/configure.svgz', because: Unknown error
То есть он не может найти иконки которые я пихаю в ресурсы. Но мне то не нужны они в ресурсах на линуксе. Как только убираю win32 - сразу все работает.
Как решить? делать ifdef для иконок как то не хочется...


Как я понял ошибки сыпятся в линухе. Так и правильно. Вначале подготавливаются все аргуметны функции, т.е. создается QString("configure") и QIcon(":/configure.svgz"), а потом они передаются в QIcon::fromTheme.
Перепиши как
QIcon icon = QIcon::fromTheme("configure");
if (icon.isNull())
    icon = QIcon(":/configure.svgz")
actionConfig->setIcon(icon);

Или храни запасную иконку для обеих систем, к сожалению, в линухе нельзя быть уверенным что найдется иконка из темы. Например, если запустить программу не в Гноме и не в КДЕ, QIcon::IconTheme возвращает пустое имя, и иконки не находятся.
RazrFalcon
Спасибо. Не подумал об этом.
Иконки и так уже храню в ресурсах, так как они у меня oxygen, и многих из них нет в том же гноме...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.