Sur cette page

QIconEngine Class

La classe `QIconEngine` fournit une classe de base abstraite pour les moteurs de rendu d'QIcon. En savoir plus...

En-tête : #include <QIconEngine>
CMake : find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake : QT += gui

Types publics

struct ScaledPixmapArgument
enum IconEngineHook { IsNullHook, ScaledPixmapHook }

Fonctions publiques

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

Description détaillée

Un moteur d’icônes fournit les fonctions de rendu pour une icône QIcon. Chaque icône dispose d’un moteur d’icônes correspondant, chargé de dessiner l’icône selon la taille, le mode et l’état demandés.

L’icône est rendue par la fonction ` paint()`, et elle peut en outre être obtenue sous forme de pixmap à l’aide de la fonction ` pixmap()` (l’implémentation par défaut utilise simplement ` paint()` pour y parvenir). La fonction ` addPixmap()` permet d’ajouter de nouveaux pixmaps au moteur d’icônes ; elle est utilisée par ` QIcon ` pour ajouter des pixmaps personnalisés spécialisés.

Les fonctions ` paint()`, ` pixmap()` et ` addPixmap()` sont toutes virtuelles et peuvent donc être réimplémentées dans les sous-classes de `QIconEngine`.

Voir également QIconEnginePlugin.

Documentation sur les types de membres

enum QIconEngine::IconEngineHook

Ces valeurs d'énumération sont utilisées pour la fonction ` virtual_hook()` afin de permettre des requêtes supplémentaires auprès du moteur d'icônes sans compromettre la compatibilité binaire.

ConstanteValeurDescription
QIconEngine::IsNullHook3Permet de vérifier si ce moteur représente une icône nulle. L’argument ` data ` de la fonction ` virtual_hook()` est un pointeur vers une variable de type booléen qui peut être définie sur `true` si l’icône est nulle. Cette valeur d’énumération a été ajoutée dans Qt 5.7.
QIconEngine::ScaledPixmapHook4Permet d'obtenir une image pixmap mise à l'échelle selon l'échelle indiquée (généralement égale au rapport de pixels de l'appareil). L'argument data de la fonction virtual_hook() est un pointeur de type ScaledPixmapArgument qui contient à la fois les arguments d'entrée et de sortie. Cette valeur d'énumération a été ajoutée dans Qt 5.9.

Voir également virtual_hook().

Documentation des fonctions membres

QIconEngine::QIconEngine()

Initialise le moteur d'icônes.

[virtual noexcept] QIconEngine::~QIconEngine()

Supprime le moteur d'icônes.

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

Renvoie la taille réelle de l'icône fournie par le moteur pour les valeurs demandées : size, mode et state. L'implémentation par défaut renvoie la valeur fournie : size.

La taille renvoyée est exprimée en pixels indépendants du périphérique (ce qui est pertinent pour les images pixmap à haute résolution).

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

Appelée par QIcon::addFile(). Ajoute une image vectorielle spécialisée à partir du fichier, avec les paramètres fileName, size, mode et state. Le moteur par défaut, basé sur les images vectorielles, enregistre tous les noms de fichiers fournis et charge les images vectorielles à la demande, au lieu d’utiliser des images vectorielles redimensionnées, si la taille d’une image vectorielle correspond à celle de l’icône demandée. Les moteurs d’icônes personnalisés qui implémentent des formats vectoriels redimensionnables sont libres d’ignorer tout fichier supplémentaire.

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

Appelée par QIcon::addPixmap(). Ajoute un moteur d'icônes spécialisé ( pixmap ) pour les paramètres mode et state fournis. Le moteur par défaut, basé sur des images bitmap, stocke toutes les images bitmap fournies et les utilise à la place des images bitmap redimensionnées si la taille d'une image bitmap correspond à celle de l'icône demandée. Les moteurs d'icônes personnalisés qui implémentent des formats vectoriels redimensionnables sont libres d'ignorer toute image bitmap supplémentaire.

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

Renvoie les dimensions de toutes les images contenues dans le moteur pour les URL suivantes : mode et state.

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

Réimplémentez cette méthode pour renvoyer un clone de ce moteur d'icônes.

[virtual] QString QIconEngine::iconName()

Renvoie le nom utilisé pour créer le moteur, s'il est disponible.

[virtual] bool QIconEngine::isNull()

Renvoie « true » si ce moteur d'icônes prend en charge la fonction « QIcon ».

Remarque : si le moteur d’icônes ne réimplémente pas cette fonction, le travail est en réalité effectué par la méthode ` virtual_hook()`. Par conséquent, cette méthode dépend de la prise en charge du moteur d’icônes et peut ne pas fonctionner avec tous les moteurs d’icônes.

[virtual] QString QIconEngine::key() const

Renvoie une clé qui identifie ce moteur d'icônes.

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

Utilise l'painter fournie pour dessiner l'icône avec les coordonnées mode et state dans le rectangle rect.

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

Renvoie l'icône sous forme de pixmap avec les attributs requis : ` size`, ` mode` et ` state`. L'implémentation par défaut crée un nouveau pixmap et appelle la fonction ` paint()` pour le remplir.

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

Lit le contenu du moteur d'icônes à partir de l'QDataStream in . Renvoie « true » si le contenu a été lu ; sinon, renvoie « false ».

QIconEngineL'implémentation par défaut de cette fonction renvoie toujours « false ».

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

Renvoie une image pixel (pixmap) correspondant aux paramètres suivants : size, mode, state et scale.

L'argument scale est généralement égal au rapport de pixels du périphérique d'affichage. La taille est exprimée en pixels indépendants du périphérique.

Remarque : si le moteur d’icônes ne réimplémente pas cette fonction, le travail est en réalité effectué par la méthode virtual_hook(), ce qui signifie que cette méthode dépend de la prise en charge du moteur d’icônes et peut ne pas fonctionner avec tous les moteurs d’icônes.

Remarque : certains moteurs peuvent convertir scale en un entier.

Voir également ScaledPixmapArgument.

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

Méthode supplémentaire permettant d'étendre l'interface ` QIconEngine ` sans ajouter de nouvelles méthodes virtuelles (et sans rompre la compatibilité binaire). L'action et le format réels de ` data ` dépendent de l'argument ` id `, qui est en fait une constante issue de l'énumération ` IconEngineHook `.

Voir également IconEngineHook.

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

Écrit le contenu de ce moteur sur QDataStream out . Renvoie true si le contenu a été écrit ; sinon, renvoie false.

QIconEngineL'implémentation par défaut renvoie toujours « 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.