Бывает необходимость в вашем приложении отобразить ту или иную стандартную системную иконку, типа значка диска CD-ROM. Можно, конечно, создавать свой ресурсный файл и ложить иконки туда, но это будет выглядеть несуразно, особенно при смене различных тем оформления. Задаёмся резонным вопросом: а как бы использовать то, что уже есть в Qt и/или системе?
Вариант 1: стандартные ресурсы Qt4
Про это написано тут: http://www.qtcentre.org/wiki/index.php?title=Embedded_resources
Помимо списка, приведён и код, которым можно получить список самостоятельно. Так же показан пример, как создавать изображение из ресурса:
QPixmap pixmap(":/trolltech/styles/commonstyle/images/up-128.png");
QIcon icon(":/trolltech/styles/commonstyle/images/up-128.png");
Вариант 2: стандартные иконки при помощи QStyle
Сылки по теме:
- http://doc.trolltech.com/latest/qstyle.html#standardIcon
- http://doc.trolltech.com/latest/qstyle.html#StandardPixmap-enum
Собственно что нам нужно, это метод класса QStyle:
QIcon QStyle::standardIcon ( StandardPixmap standardIcon, const QStyleOption * option = 0, const QWidget * widget = 0 ) const
Иконки опеределяются перечислением StandardPixmap
Вариант 3: использование иконок темы оформления
Тут, скорее всего, всё будет очень сильно зависеть от платформы. Но в общем случае, нам нужен такой вызов:
QIcon icon(QIcon::fromTheme(QString::fromUtf8("icon-name")));
icon-name
имя иконки, возможные значения, стандартные, для Linux можно узнать тут:
http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html