Смена значка в заголовке окна

По умолчанию в левом верхнем углу окна отображается стандартный значок. Отобразить другой значок в заголовке окна позволяет метод setWindowIcon() из класса QWidget. В качестве параметра метод принимает экземпляр класса QIcon. Прототип метода:

void setWindowIcon(const QIcon &icon)

Чтобы загрузить иконку из файла следует передать путь к файлу конструктору класса. Если указан относительный путь, то поиск файла будет производиться относительно текущего рабочего каталога. Получить список поддерживаемых форматов файлов можно с помощью статического метода supportedImageFormats() из класса QImageReader. Метод возвращает список с экземплярами класса QByteArray. Прототип метода:

#include <QImageReader>
static QList<QByteArray> supportedImageFormats()

Получим список поддерживаемых форматов:

qDebug() << QImageReader::supportedImageFormats();

Результат выполнения на моем компьютере:

QList("bmp", "cur", "gif", "ico", "jpeg", "jpg", "pbm", "pgm", "png", 
"ppm", "svg", "svgz", "xbm", "xpm")

Если для окна не задан значок, то будет использоваться значок приложения, установленный с помощью метода setWindowIcon() из класса QApplication. В качестве параметра метод принимает экземпляр класса QIcon. Прототип метода:

void setWindowIcon(const QIcon &icon)

Вместо загрузки значка из файла можно воспользоваться одним из встроенных значков. Загрузить стандартный значок позволяет следующий код:

// #include <QIcon>
// #include <QStyle>
QIcon ico = window.style()->standardIcon(
               QStyle::SP_MessageBoxCritical);
window.setWindowIcon(ico);

Посмотреть список всех встроенных значков можно в документации к классу QStyle.

В качестве примера создаем значок в формате ICO и сохраняем его в одной папке с программой, а далее устанавливаем этот значок для окна и для всего приложения (листинг 3.9).

Листинг 3.9. Смена значка в заголовке окна

#include <QApplication>
#include <QWidget>
#include <QIcon>

int main(int argc, char *argv[])
{
   QApplication app(argc, argv);
   QWidget window;
   window.setWindowTitle("Смена значка в заголовке окна");
   window.resize(350, 70);
   QIcon ico("C:\\cpp\\projectsQt\\Test\\test.ico");
   window.setWindowIcon(ico); // Значок для окна
   app.setWindowIcon(ico);    // Значок для приложения
   window.show();
   return app.exec();
}

Учебник C++ (Qt Creator и MinGW)
Учебник C++ (Qt Creator и MinGW) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов