En esta página

QIconEngine Class

La clase QIconEngine proporciona una clase base abstracta para los renderizadores de QIcon. Más...

Cabecera: #include <QIconEngine>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

Tipos Públicos

struct ScaledPixmapArgument
enum IconEngineHook { IsNullHook, ScaledPixmapHook }

Funciones Públicas

QIconEngine()
virtual ~QIconEngine()
virtual QSize actualSize(const QSize &size, QIcon::Mode mode, QIcon::State state)
virtual void addFile(const QString &fileName, const QSize &size, QIcon::Mode mode, QIcon::State state)
virtual void addPixmap(const QPixmap &pixmap, QIcon::Mode mode, QIcon::State state)
virtual QList<QSize> availableSizes(QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off)
virtual QIconEngine *clone() const = 0
virtual QString iconName()
virtual bool isNull()
virtual QString key() const
virtual void paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state) = 0
virtual QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state)
virtual bool read(QDataStream &in)
virtual QPixmap scaledPixmap(const QSize &size, QIcon::Mode mode, QIcon::State state, qreal scale)
virtual void virtual_hook(int id, void *data)
virtual bool write(QDataStream &out) const

Descripción detallada

Un motor de iconos proporciona las funciones de renderizado para un QIcon. Cada icono tiene un motor de iconos correspondiente que es responsable de dibujar el icono con un tamaño, modo y estado solicitados.

El icono se renderiza mediante la función paint(), y el icono puede obtenerse adicionalmente como un pixmap con la función pixmap() (la implementación por defecto simplemente utiliza paint() para conseguirlo). La función addPixmap() puede utilizarse para añadir nuevos pixmaps al motor de iconos, y es utilizada por QIcon para añadir pixmaps personalizados especializados.

Las funciones paint(), pixmap(), y addPixmap() son todas virtuales, y por lo tanto pueden ser reimplementadas en subclases de QIconEngine.

Véase también QIconEnginePlugin.

Documentación de tipos de miembros

enum QIconEngine::IconEngineHook

Estos valores enum se utilizan para virtual_hook() para permitir consultas adicionales al motor de iconos sin romper la compatibilidad binaria.

ConstanteValorDescripción
QIconEngine::IsNullHook3Permite consultar si este motor representa un icono nulo. El argumento data de virtual_hook() es un puntero a un bool que puede establecerse a true si el icono es null. Este valor enum se añadió en Qt 5.7.
QIconEngine::ScaledPixmapHook4Proporciona una forma de obtener un mapa de píxeles escalado según la escala dada (normalmente igual a la relación de píxeles del dispositivo). El argumento data de la función virtual_hook() es un puntero ScaledPixmapArgument que contiene los argumentos de entrada y salida. Este valor enum se añadió en Qt 5.9.

Véase también virtual_hook().

Documentación de las funciones miembro

QIconEngine::QIconEngine()

Construye el motor de iconos.

[virtual noexcept] QIconEngine::~QIconEngine()

Destruye el motor de iconos.

[virtual] QSize QIconEngine::actualSize(const QSize &size, QIcon::Mode mode, QIcon::State state)

Devuelve el tamaño real del icono que el motor proporciona para los sitios size, mode y state solicitados. La implementación por defecto devuelve el tamaño size.

El tamaño devuelto está en píxeles independientes del dispositivo (esto es relevante para los mapas de píxeles de alta ppp).

[virtual] void QIconEngine::addFile(const QString &fileName, const QSize &size, QIcon::Mode mode, QIcon::State state)

Llamado por QIcon::addFile(). Añade un mapa de píxeles especializado desde el archivo con los nombres fileName, size, mode y state. El motor basado en mapas de píxeles por defecto almacena cualquier nombre de archivo suministrado, y carga los mapas de píxeles bajo demanda en lugar de utilizar mapas de píxeles escalados si el tamaño de un mapa de píxeles coincide con el tamaño del icono solicitado. Los motores de iconos personalizados que implementan formatos vectoriales escalables son libres de ignorar cualquier archivo adicional.

[virtual] void QIconEngine::addPixmap(const QPixmap &pixmap, QIcon::Mode mode, QIcon::State state)

Llamado por QIcon::addPixmap(). Añade un pixmap especializado para los mode y state dados. El motor basado en mapas de píxeles por defecto almacena los mapas de píxeles suministrados y los utiliza en lugar de los mapas de píxeles escalados si el tamaño de un mapa de píxeles coincide con el tamaño del icono solicitado. Los motores de iconos personalizados que implementan formatos vectoriales escalables son libres de ignorar cualquier mapa de píxeles adicional.

[virtual] QList<QSize> QIconEngine::availableSizes(QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off)

Devuelve los tamaños de todas las imágenes que contiene el motor para las direcciones mode y state específicas.

[pure virtual] QIconEngine *QIconEngine::clone() const

Reimplemente este método para devolver un clon de este motor de iconos.

[virtual] QString QIconEngine::iconName()

Devuelve el nombre utilizado para crear el motor, si está disponible.

[virtual] bool QIconEngine::isNull()

Devuelve true si este motor de iconos representa un QIcon nulo.

Nota: Si el motor de iconos no reimplementa esta función, el trabajo real lo realiza el método virtual_hook(), por lo que este método depende del soporte del motor de iconos y puede no funcionar con todos los motores de iconos.

[virtual] QString QIconEngine::key() const

Devuelve una clave que identifica este motor de iconos.

[pure virtual] void QIconEngine::paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state)

Utiliza el painter dado para pintar el icono con los mode y state requeridos en el rectángulo rect.

[virtual] QPixmap QIconEngine::pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state)

Devuelve el icono como un mapa de píxeles con los campos size, mode, y state. La implementación por defecto crea un nuevo pixmap y llama a paint() para rellenarlo.

[virtual] bool QIconEngine::read(QDataStream &in)

Lee el contenido del motor de iconos de QDataStream in . Devuelve true si los contenidos fueron leídos; en caso contrario devuelve false.

QIconEngineLa implementación por defecto de 's siempre devuelve false.

[virtual] QPixmap QIconEngine::scaledPixmap(const QSize &size, QIcon::Mode mode, QIcon::State state, qreal scale)

Devuelve un mapa de píxeles para los argumentos size, mode, state y scale.

El argumento scale suele ser igual a la relación de píxeles del dispositivo de visualización. El tamaño se indica en píxeles independientes del dispositivo.

Nota: Si el motor de iconos no reimplementa esta función, el trabajo real lo realiza el método virtual_hook(), por lo que este método depende del soporte del motor de iconos y puede no funcionar con todos los motores de iconos.

Nota: Algunos motores pueden convertir scale en un número entero.

Véase también ScaledPixmapArgument.

[virtual] void QIconEngine::virtual_hook(int id, void *data)

Método adicional para permitir extender QIconEngine sin añadir nuevos métodos virtuales (y sin romper la compatibilidad binaria). La acción y el formato reales de data dependen del argumento id que, de hecho, es una constante del enum IconEngineHook.

Véase también IconEngineHook.

[virtual] bool QIconEngine::write(QDataStream &out) const

Escribe el contenido de este motor en QDataStream out . Devuelve true si el contenido fue escrito; en caso contrario devuelve false.

QIconEngineLa implementación por defecto de 's siempre devuelve false.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.