QIconEngine Class
La classe QIconEngine fournit une classe de base abstraite pour les moteurs de rendu QIcon. Plus d'informations...
| En-tête : | #include <QIconEngine> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake : | QT += gui |
- Liste de tous les membres, y compris les membres hérités
- QIconEngine fait partie de Painting Classes.
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 QIcon. Chaque icône a un moteur d'icônes correspondant qui est responsable du dessin de l'icône avec la taille, le mode et l'état demandés.
L'icône est rendue par la fonction paint(), et l'icône peut également être obtenue sous forme de pixmap avec la fonction pixmap() (l'implémentation par défaut utilise simplement paint() pour y parvenir). La fonction addPixmap() peut être utilisée pour ajouter de nouvelles pixmaps au moteur d'icônes et 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 des sous-classes de QIconEngine.
Voir également QIconEnginePlugin.
Documentation sur les types de membres
enum QIconEngine::IconEngineHook
Ces valeurs sont utilisées pour virtual_hook() afin de permettre des requêtes supplémentaires au moteur d'icônes sans rompre la compatibilité binaire.
| Constante | Valeur | Description |
|---|---|---|
QIconEngine::IsNullHook | 3 | Permet de demander si ce moteur représente une icône nulle. L'argument data de virtual_hook() est un pointeur vers un bool qui peut être mis à true si l'icône est null. Cette valeur d'énumération a été ajoutée dans Qt 5.7. |
QIconEngine::ScaledPixmapHook | 4 | Fournit un moyen d'obtenir une pixmap qui est mise à l'échelle selon l'échelle donnée (typiquement égale au ratio de pixel du périphérique). L'argument data de la fonction virtual_hook() est un pointeur ScaledPixmapArgument qui contient les arguments d'entrée et de sortie. Cette valeur enum a été ajoutée dans Qt 5.9. |
Voir aussi virtual_hook().
Documentation des fonctions membres
QIconEngine::QIconEngine()
Construit le moteur d'icônes.
[virtual noexcept] QIconEngine::~QIconEngine()
Détruit 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 sites demandés size, mode et state. L'implémentation par défaut renvoie la taille donnée size.
La taille renvoyée est exprimée en pixels indépendants de l'appareil (ce qui est important pour les pixmaps à haute résolution).
[virtual] void QIconEngine::addFile(const QString &fileName, const QSize &size, QIcon::Mode mode, QIcon::State state)
Appelé par QIcon::addFile(). Ajoute une pixmap spécialisée à partir du fichier avec les noms donnés fileName, size, mode et state. Le moteur par défaut basé sur les pixmaps stocke tous les noms de fichiers fournis et charge les pixmaps à la demande au lieu d'utiliser des pixmaps mis à l'échelle si la taille d'un pixmap correspond à la taille de l'icône demandée. Les moteurs d'icônes personnalisés qui implémentent des formats vectoriels évolutifs sont libres d'ignorer tout fichier supplémentaire.
[virtual] void QIconEngine::addPixmap(const QPixmap &pixmap, QIcon::Mode mode, QIcon::State state)
Appelé par QIcon::addPixmap(). Ajoute une icône spécialisée pixmap pour les icônes mode et state. Le moteur par défaut basé sur les pixmaps stocke tous les pixmaps fournis et les utilise à la place des pixmaps mis à l'échelle si la taille d'un pixmap correspond à la taille de l'icône demandée. Les moteurs d'icônes personnalisés qui implémentent des formats vectoriels évolutifs sont libres d'ignorer toute pixmap supplémentaire.
[virtual] QList<QSize> QIconEngine::availableSizes(QIcon::Mode mode = QIcon::Normal, QIcon::State state = QIcon::Off)
Renvoie les tailles de toutes les images contenues dans le moteur pour les adresses spécifiques mode et state.
[pure virtual] QIconEngine *QIconEngine::clone() const
Réimplémenter 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()
Retourne true si ce moteur d'icônes représente un null QIcon.
Note : Si le moteur d'icônes ne réimplémente pas cette fonction, le travail réel est effectué par la méthode virtual_hook(). Cette méthode dépend donc 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'adresse painter pour peindre l'icône avec les adresses mode et state requises 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 éléments requis size, mode, et state. L'implémentation par défaut crée un nouveau pixmap et appelle paint() pour le remplir.
[virtual] bool QIconEngine::read(QDataStream &in)
Lit le contenu du moteur d'icônes à partir du site QDataStream in . Retourne vrai si le contenu a été lu, sinon retourne false.
QIconEngineL'implémentation par défaut de renvoie toujours false.
[virtual] QPixmap QIconEngine::scaledPixmap(const QSize &size, QIcon::Mode mode, QIcon::State state, qreal scale)
Renvoie une pixmap pour les valeurs données size, mode, state et scale.
L'argument scale est généralement égal au ratio de pixels de l'écran. La taille est donné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 réel est effectué par la méthode virtual_hook(). Cette méthode dépend donc 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 aussi ScaledPixmapArgument.
[virtual] void QIconEngine::virtual_hook(int id, void *data)
Méthode supplémentaire permettant d'étendre QIconEngine sans ajouter de nouvelles méthodes virtuelles (et sans rompre la compatibilité binaire). L'action et le format de data dépendent de l'argument id qui est en fait une constante de l'énumération IconEngineHook.
Voir aussi IconEngineHook.
[virtual] bool QIconEngine::write(QDataStream &out) const
Écrit le contenu de ce moteur sur le site QDataStream out . Renvoie true si le contenu a été écrit, sinon renvoie false.
QIconEngineL'implémentation par défaut du moteur 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.