Auf dieser Seite

QIconEngine Class

Die Klasse „QIconEngine“ stellt eine abstrakte Basisklasse für „ QIcon “-Renderer bereit. Mehr...

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

Öffentliche Typen

struct ScaledPixmapArgument
enum IconEngineHook { IsNullHook, ScaledPixmapHook }

Öffentliche Funktionen

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

Ausführliche Beschreibung

Eine Icon-Engine stellt die Rendering-Funktionen für ein „ QIcon “ bereit. Jedes Icon verfügt über eine entsprechende Icon-Engine, die für das Zeichnen des Icons in der angeforderten Größe, im angeforderten Modus und im angeforderten Zustand zuständig ist.

Das Icon wird von der Funktion „ paint()“ gerendert und kann zusätzlich mit der Funktion „ pixmap()“ als Pixmap abgerufen werden (die Standardimplementierung verwendet hierfür einfach „ paint()“). Mit der Funktion „ addPixmap()“ können neue Pixmaps zur Icon-Engine hinzugefügt werden; sie wird von „ QIcon “ verwendet, um spezielle benutzerdefinierte Pixmaps hinzuzufügen.

Die Funktionen ` paint()`, ` pixmap()` und ` addPixmap()` sind alle virtuell und können daher in Unterklassen von `QIconEngine` neu implementiert werden.

Siehe auch QIconEnginePlugin.

Dokumentation zu Mitgliedstypen

enum QIconEngine::IconEngineHook

Diese Enum-Werte werden für ` virtual_hook()` verwendet, um zusätzliche Abfragen an die Icon-Engine zu ermöglichen, ohne die Binärkompatibilität zu beeinträchtigen.

KonstanteWertBeschreibung
QIconEngine::IsNullHook3Ermöglicht die Abfrage, ob diese Engine ein Null-Icon darstellt. Das Argument ` data ` der Funktion ` virtual_hook()` ist ein Zeiger auf einen bool-Wert, der auf `true` gesetzt werden kann, wenn das Icon null ist. Dieser Enum-Wert wurde in Qt 5.7 hinzugefügt.
QIconEngine::ScaledPixmapHook4Bietet eine Möglichkeit, eine Pixmap abzurufen, die entsprechend dem angegebenen Maßstab (in der Regel gleich dem Gerätepixelverhältnis) skaliert ist. Das Argument ` data ` der Funktion ` virtual_hook()` ist ein Zeiger vom Typ ` ScaledPixmapArgument `, der sowohl die Eingabe- als auch die Ausgabeargumente enthält. Dieser Enum-Wert wurde in Qt 5.9 hinzugefügt.

Siehe auch ` virtual_hook()`.

Dokumentation zu den Mitgliedsfunktionen

QIconEngine::QIconEngine()

Erstellt die Icon-Engine.

[virtual noexcept] QIconEngine::~QIconEngine()

Löscht die Icon-Engine.

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

Gibt die tatsächliche Größe des Symbols zurück, das die Engine für die angeforderten Werte „ size “, „ mode “ und „ state “ bereitstellt. Die Standardimplementierung gibt den angegebenen Wert „ size “ zurück.

Die zurückgegebene Größe wird in geräteunabhängigen Pixeln angegeben (dies ist bei Pixmaps mit hoher DPI-Auflösung relevant).

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

Wird von ` QIcon::addFile()` aufgerufen. Fügt eine spezielle Pixmap aus der Datei mit den angegebenen Werten für ` fileName`, ` size`, ` mode ` und ` state` hinzu. Die standardmäßige, auf Pixmaps basierende Engine speichert alle angegebenen Dateinamen und lädt die Pixmaps bei Bedarf, anstatt skalierte Pixmaps zu verwenden, wenn die Größe einer Pixmap mit der Größe des angeforderten Symbols übereinstimmt. Benutzerdefinierte Icon-Engines, die skalierbare Vektorformate implementieren, können zusätzliche Dateien ignorieren.

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

Wird von ` QIcon::addPixmap()` aufgerufen. Fügt eine spezielle ` pixmap ` für die angegebenen ` mode ` und ` state` hinzu. Die standardmäßige, auf Pixmaps basierende Engine speichert alle bereitgestellten Pixmaps und verwendet diese anstelle skalierter Pixmaps, wenn die Größe einer Pixmap mit der Größe des angeforderten Symbols übereinstimmt. Benutzerdefinierte Symbol-Engines, die skalierbare Vektorformate implementieren, können zusätzliche Pixmaps nach Belieben ignorieren.

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

Gibt die Größen aller Bilder zurück, die in der Engine für die angegebenen URLs mode und state enthalten sind.

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

Implementieren Sie diese Methode neu, um einen Klon dieser Icon-Engine zurückzugeben.

[virtual] QString QIconEngine::iconName()

Gibt den Namen zurück, der beim Erstellen der Engine verwendet wurde, sofern verfügbar.

[virtual] bool QIconEngine::isNull()

Gibt „true“ zurück, wenn diese Icon-Engine eine Null- QIcon darstellt.

Hinweis: Wenn die Icon-Engine diese Funktion nicht neu implementiert, wird die eigentliche Arbeit von der Methode ` virtual_hook()` übernommen. Daher hängt diese Methode von der Unterstützung durch die Icon-Engine ab und funktioniert möglicherweise nicht mit allen Icon-Engines.

[virtual] QString QIconEngine::key() const

Gibt einen Schlüssel zurück, der diese Icon-Engine identifiziert.

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

Verwendet das angegebene ` painter `, um das Symbol mit den erforderlichen Werten ` mode ` und ` state ` in das Rechteck ` rect` zu zeichnen.

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

Gibt das Symbol als Pixmap mit den erforderlichen Attributen „ size “, „ mode “ und „ state “ zurück. Die Standardimplementierung erstellt eine neue Pixmap und ruft die Funktion „ paint()“ auf, um diese zu füllen.

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

Liest den Inhalt der Icon-Engine aus dem QDataStream in . Gibt „true“ zurück, wenn der Inhalt gelesen wurde; andernfalls wird „ false “ zurückgegeben.

QIconEngineDie Standardimplementierung gibt immer „false“ zurück.

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

Gibt eine Pixmap für die angegebenen Werte „ size “, „ mode “, „ state “ und „ scale “ zurück.

Das Argument ` scale ` entspricht in der Regel dem Gerätepixelverhältnis des Displays. Die Größe wird in geräteunabhängigen Pixeln angegeben.

Hinweis: Wenn die Icon-Engine diese Funktion nicht neu implementiert, wird die eigentliche Arbeit von der Methode ` virtual_hook()` übernommen; daher hängt diese Methode von der Unterstützung durch die Icon-Engine ab und funktioniert möglicherweise nicht mit allen Icon-Engines.

Hinweis: Einige Engines wandeln „ scale “ möglicherweise in eine Ganzzahl um.

Siehe auch ` ScaledPixmapArgument`.

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

Zusätzliche Methode, um die Erweiterung von ` QIconEngine ` zu ermöglichen, ohne neue virtuelle Methoden hinzuzufügen (und ohne die Binärkompatibilität zu beeinträchtigen). Die tatsächliche Ausführung und das Format von ` data ` hängen vom Argument ` id ` ab, bei dem es sich tatsächlich um eine Konstante aus der Aufzählung ` IconEngineHook ` handelt.

Siehe auch IconEngineHook.

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

Schreibt den Inhalt dieser Engine in die Datei „ QDataStream “ ( out). Gibt „ true “ zurück, wenn der Inhalt geschrieben wurde; andernfalls wird „ false “ zurückgegeben.

QIconEngineDie Standardimplementierung gibt immer `false` zurück.

© 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.