Класс QIconEngine
Класс QIconEngine предоставляет абстрактный базовый класс для рендереров QIcon. Подробнее...
| Заголовок: | #include <QIconEngine> |
| CMake: | find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
Типы публичного доступа
| Структура | ScaledPixmapArgument |
| Перечисление | IconEngineHook { IsNullHook, ScaledPixmapHook } |
Функции публичного доступа
| QIconEngine() | |
| виртуальный | ~QIconEngine() |
| виртуальный QSize | actualSize(const QSize &size, QIcon::Mode mode, QIcon::State state) |
| виртуальный void | addFile(const QString &fileName, const QSize &size, QIcon::Mode mode, QIcon::State state) |
| виртуальный void | addPixmap(const QPixmap &pixmap, QIcon::Mode mode, QIcon::State state) |
| виртуальный QList<QSize> | availableSizes(QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off) |
| виртуальный QIconEngine * | clone() const = 0 |
| виртуальный QString | iconName() |
| виртуальный bool | isNull() |
| виртуальный QString | key() const |
| виртуальный void | paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state) = 0 |
| виртуальный QPixmap | pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state) |
| виртуальный bool | read(QDataStream &in) |
| виртуальный QPixmap | scaledPixmap(const QSize &size, QIcon::Mode mode, QIcon::State state, qreal scale) |
| виртуальный void | virtual_hook(int id, void *data) |
| виртуальный bool | write(QDataStream &out) const |
Подробное описание
Движок иконок предоставляет функции рендеринга для QIcon. Каждая иконка имеет соответствующий движок иконок, который отвечает за отрисовку иконки с запрошенным размером, режимом и состоянием.
Иконка рендерится функцией paint(), и иконку дополнительно можно получить как пиксель с помощью функции pixmap() (реализация по умолчанию просто использует paint() для достижения этого). Функция addPixmap() может использоваться для добавления новых пикселей в движок иконок и используется QIcon для добавления специализированных пользовательских пикселей.
Функции paint(), pixmap() и addPixmap() являются виртуальными и поэтому могут быть переопределены в подклассах QIconEngine.
См. также QIconEnginePlugin.
Документация по типам членов
Перечисление QIconEngine::IconEngineHook
Эти значения перечисления используются для virtual_hook() для возможности дополнительных запросов к движку иконок без нарушения бинарной совместимости.
| Константа | Значение | Описание |
|---|---|---|
QIconEngine::IsNullHook |
3 |
Позволяет запросить, представляет ли этот движок пустую иконку. Аргумент data метода virtual_hook() — указатель на bool, который можно установить в значение true, если иконка пуста. Это значение перечисления было добавлено в Qt 5.7. |
QIconEngine::ScaledPixmapHook |
4 |
Предоставляет способ получения пикселя, масштабированного в соответствии с заданным масштабом (обычно равным отношению пикселей устройства). Аргумент data функции virtual_hook() — указатель на ScaledPixmapArgument, содержащий входные и выходные аргументы. Это значение перечисления было добавлено в Qt 5.9. |
См. также virtual_hook().
Документация по функциям-членам
[since 5.6] QIconEngine::QIconEngine()
Конструирует движок иконок.
Эта функция была добавлена в Qt 5.6.
[virtual] QIconEngine::~QIconEngine()
Уничтожает движок иконок.
[virtual] QSize QIconEngine::actualSize(const QSize &size, QIcon::Mode mode, QIcon::State state)
Возвращает фактический размер иконки, предоставляемой движком для запрошенного size, mode и state. Реализация по умолчанию возвращает заданный size.
[virtual] void QIconEngine::addFile(const QString &fileName, const QSize &size, QIcon::Mode mode, QIcon::State state)
Вызывается функцией QIcon::addFile(). Добавляет специализированный пиксель из файла с заданным fileName, size, mode и state. Движок иконок по умолчанию хранит все предоставленные имена файлов и загружает пиксели по требованию вместо использования масштабированных пикселей, если размер пикселя соответствует размеру запрошенной иконки. Пользовательские движки иконок, реализующие масштабируемые векторные форматы, могут игнорировать дополнительные файлы.
[virtual] void QIconEngine::addPixmap(const QPixmap &pixmap, QIcon::Mode mode, QIcon::State state)
Вызывается функцией QIcon::addPixmap(). Добавляет специализированный pixmap для заданного mode и state. Движок иконок по умолчанию хранит все предоставленные пиксели и использует их вместо масштабированных пикселей, если размер пикселя соответствует размеру запрошенной иконки. Пользовательские движки иконок, реализующие масштабируемые векторные форматы, могут игнорировать дополнительные пиксели.
[virtual] QList<QSize> QIconEngine::availableSizes(QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off)
Возвращает размеры всех изображений, содержащихся в движке, для заданного mode и state.
[pure virtual] QIconEngine *QIconEngine::clone() const
Переопределите этот метод, чтобы вернуть копию этого движка иконок.
[virtual] QString QIconEngine::iconName()
Возвращает имя, используемое для создания движка, если оно доступно.
[virtual, since 5.7] bool QIconEngine::isNull()
Возвращает true, если этот движок иконок представляет пустую QIcon.
Примечание: Это вспомогательный метод, и фактическая работа выполняется методом virtual_hook(), поэтому этот метод зависит от поддержки движком иконок и может не работать со всеми движками иконок.
Эта функция была добавлена в Qt 5.7.
[virtual] QString QIconEngine::key() const
Возвращает ключ, который идентифицирует этот движок иконок.
[pure virtual] void QIconEngine::paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state)
Использует заданный painter для отрисовки значка с требуемым mode и state в прямоугольник rect.
[virtual] QPixmap QIconEngine::pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state)
Возвращает значок в виде пикселмапа с требуемыми size, mode и state. Реализация по умолчанию создаёт новый пикселмап и вызывает paint() для его заполнения.
[virtual] bool QIconEngine::read(QDataStream &in)
Читает содержимое движка значка из QDataStream in. Возвращает true, если содержимое было прочитано; в противном случае возвращает false.
Реализация QIconEngine по умолчанию всегда возвращает false.
[virtual, since 5.9] QPixmap QIconEngine::scaledPixmap(const QSize &size, QIcon::Mode mode, QIcon::State state, qreal scale)
Возвращает пикселмап для заданных size, mode, state и scale.
Аргумент scale обычно равен коэффициенту масштабирования пикселей устройства дисплея.
Примечание: Это вспомогательный метод, и фактическая работа выполняется методом virtual_hook(), поэтому этот метод зависит от поддержки движка значков и может не работать со всеми движками значков.
Примечание: Некоторые движки могут преобразовать scale в целое число.
Эта функция была добавлена в Qt 5.9.
См. также ScaledPixmapArgument.
[virtual] void QIconEngine::virtual_hook(int id, void *data)
Дополнительный метод для расширения QIconEngine без добавления новых виртуальных методов (и без нарушения бинарной совместимости). Фактическое действие и формат data зависит от аргумента id, который фактически является константой из перечисления IconEngineHook.
См. также IconEngineHook.
[virtual] bool QIconEngine::write(QDataStream &out) const
Записывает содержимое этого движка в QDataStream out. Возвращает true, если содержимое было записано; в противном случае возвращает false.
Реализация QIconEngine по умолчанию всегда возвращает false.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qiconengine.html