Используем стандартные системные иконки в Qt4/5

При написании любого 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()

Просмотров:   4193