При написании любого GUI приложения вам понадобиться некий набор иконок. И если у вас есть где их взять и вкус чтобы выбрать нужные, то всё хорошо! Но к сожалению мой меня часто подводит. А вот к стандартным системным иконкам не придерёшься, да и пользователям привычнее видеть такиеже иконки как и в стандартных приложениях.
Слава богу Qt позволяет использовать стандартный набор системных иконок.
Для этого инклудим класс QStyle:
#include <QStyle>
И пошла магия. Никаких эклемпляров этого класса нам создать не дадут (он абстрактный), но это нам и не потребуется. Для всех манипуляций с ним используем style()
Например создаём экшн для сохранения файла:
QAction saveAction = new QAction(parent); saveAction->setText(tr("&Save Shot")); saveAction->setIcon(style()->standardIcon(QStyle::SP_DialogSaveButton)); ui->mainToolBar->addAction(saveAction); ui->menu->addAction(saveAction);
Вся «магия» произошла в строке
saveAction->setIcon(style()->standardIcon(QStyle::SP_DialogSaveButton));
Для задания иконки мы пользуемся функцией класса QStyle — standardIcon()
Её параметром выступает идентификатор иконки. Полный список возможных вы можете посмотреть выделив standardIcon и нажав F1 (справочная система Qt Creator).
Выглядеть будет вот так:
Это как вы понимаете Windows 7. В других ОС будет конечно же иначе, но стандартно для выбранной операционной системы.
ps точно таким же образом можно получить и QPixmap. Просто нужно использовать standardPixmap()