Qt4 и системные иконки

Модератор: Модераторы разделов

Аватара пользователя
nadge
Сообщения: 1519
ОС: ArchLinux, Ubuntu 10.10

Qt4 и системные иконки

Сообщение nadge »

Пересел на Qt. Хотелось бы использовать в программе стандартные иконки, как в других программах. Однако не смог ни в офф. документации, ни в гугле найти, как это сделать.

Иконки, например, такие: открытие файла, закрытие, выход из программы, отменить, вернуть, копировать, вставить, найти, печать, о программе и т.п. Т.е. это текстовый редактор. (Впринципе, понадобятся или иконки управления шрифтом (жирный, курсив, и т.п.), но вроде таких стандартных нет?). Обязательное условие: это должно работать в во всех средах (Gtk/Gnome, Qt/KDE и на винде).

Подскажите, как это сделать?
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Qt4 и системные иконки

Сообщение NickLion »

QIcon::fromTheme - по идее оно? Начиная с Qt 4.6. Но с Windows небольшие проблемы (как и MacOSX).
Спасибо сказали:
Аватара пользователя
nadge
Сообщения: 1519
ОС: ArchLinux, Ubuntu 10.10

Re: Qt4 и системные иконки

Сообщение nadge »

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

Правильно ли я понял, что на винде надо свою тему создать на основе виндовой, но с правильными названиями иконок?
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Qt4 и системные иконки

Сообщение NickLion »

nadge писал(а):
14.04.2010 21:25
Спасибо. На линуксе работает нормально.

Правильно ли я понял, что на винде надо свою тему создать на основе виндовой, но с правильными названиями иконок?

Судя по описанию - да. Не пробовал. Скорее всего надо следовать правилам freedesktop. Попробуйте для начала просто папку (или парочку) из /usr/share/icons скопировать и подключить в винде её подключить через QIcon::setThemeSearchPaths и QIcon::setThemeName. По идее должно прокатить.
Спасибо сказали:
Аватара пользователя
nadge
Сообщения: 1519
ОС: ArchLinux, Ubuntu 10.10

Re: Qt4 и системные иконки

Сообщение nadge »

ОК, спасибо, попробую.



З.Ы. Но вообще странно, что в Qt под виндой не реализовали такую (имхо) несложную и часто используемую функцию. По идее ведь можно сделать обертку над виндовым механизмом получения иконок, совместимую с тем же freedesktop...
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Qt4 и системные иконки

Сообщение NickLion »

nadge писал(а):
15.04.2010 01:18
З.Ы. Но вообще странно, что в Qt под виндой не реализовали такую (имхо) несложную и часто используемую функцию. По идее ведь можно сделать обертку над виндовым механизмом получения иконок, совместимую с тем же freedesktop...

Да в общем-то ничего странного. Иконки в винде сделаны как ресурсы в DLL'ках. Доступны по номерам (имён нет). Соответствие номеров в разных версиях никто не гарантирует. Т.е. получение сделать - это несложно, а вот уверенности в том, что это именно та иконка будет - нет. Плюс к этому набор иконок в WinXP меньше такового в Win7. Решили костылей не ваять.
Спасибо сказали:
distruktor
Сообщения: 11
ОС: Slackware Linux

Re: Qt4 и системные иконки

Сообщение distruktor »

nadge писал(а):
15.04.2010 01:18
ОК, спасибо, попробую.



З.Ы. Но вообще странно, что в Qt под виндой не реализовали такую (имхо) несложную и часто используемую функцию. По идее ведь можно сделать обертку над виндовым механизмом получения иконок, совместимую с тем же freedesktop...

Вообщето QT содержит и основные иконки, но их мало, остальное нужно подключать самому. Пример проигрыватель SM Player, в нем все иконки обычные пнг, посмотрите его исходники и думаю сможете найти полезный код и для себя.
Спасибо сказали: