QIconEngine Class

Die Klasse QIconEngine bietet eine abstrakte Basisklasse für QIcon Renderer. Mehr...

Kopfzeile: #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

Detaillierte Beschreibung

Eine IconEngine stellt die Rendering-Funktionen für ein QIcon zur Verfügung. Jedes Icon hat eine entsprechende IconEngine, die für das Zeichnen des Icons mit der gewünschten Größe, dem Modus und dem Status verantwortlich ist.

Das Icon wird mit der Funktion paint() gerendert, und das Icon kann zusätzlich mit der Funktion pixmap() als Pixmap erhalten werden (die Standardimplementierung verwendet dazu einfach paint()). Die Funktion addPixmap() kann verwendet werden, um der Icon-Engine neue Pixmaps hinzuzufügen, und 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 reimplementiert werden.

Siehe auch QIconEnginePlugin.

Dokumentation der 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::IsNullHook3Erlaubt die Abfrage, ob diese Engine ein Null-Symbol darstellt. Das data Argument von virtual_hook() ist ein Zeiger auf ein bool, das 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 zu erhalten, die entsprechend dem angegebenen Maßstab skaliert ist (typischerweise gleich dem Pixelverhältnis des Geräts). Das data Argument der Funktion virtual_hook() ist ein ScaledPixmapArgument Zeiger, der sowohl das Eingabe- als auch das Ausgabeargument enthält. Dieser Enum-Wert wurde in Qt 5.9 hinzugefügt.

Siehe auch virtual_hook().

Dokumentation der Mitgliedsfunktionen

QIconEngine::QIconEngine()

Konstruiert die Icon-Engine.

[virtual noexcept] QIconEngine::~QIconEngine()

Zerstört 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 size, mode und state bereitstellt. Die Standardimplementierung gibt die angegebene size zurück.

Die zurückgegebene Größe wird in geräteunabhängigen Pixeln angegeben (dies ist für Pixmaps mit hoher Auflösung von Bedeutung).

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

Aufgerufen von QIcon::addFile(). Fügt ein spezielles Pixmap aus der Datei mit dem angegebenen fileName, size, mode und state hinzu. Die standardmäßige pixmap-basierte 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 Icons übereinstimmt. Benutzerdefinierte Icon-Engines, die skalierbare Vektorformate implementieren, können alle zusätzlichen Dateien ignorieren.

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

Aufgerufen von QIcon::addPixmap(). Fügt ein spezialisiertes pixmap für die angegebenen mode und state hinzu. Die standardmäßige pixmap-basierte Engine speichert alle bereitgestellten Pixmaps und verwendet sie anstelle von skalierten Pixmaps, wenn die Größe einer Pixmap mit der Größe des angeforderten Symbols übereinstimmt. Benutzerdefinierte Icon-Engines, die skalierbare Vektorformate implementieren, können alle zusätzlichen Pixmaps 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 spezifische mode und state enthalten sind.

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

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

[virtual] QString QIconEngine::iconName()

Gibt den Namen zurück, der zur Erstellung des Motors verwendet wurde, falls vorhanden.

[virtual] bool QIconEngine::isNull()

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

Hinweis: Wenn die Icon-Engine diese Funktion nicht neu implementiert, wird die eigentliche Arbeit von der Methode virtual_hook() erledigt; daher hängt diese Methode von der Unterstützung der 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 die angegebene painter, um das Symbol mit den erforderlichen mode und state in das Rechteck rect zu malen.

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

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

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

Liest den Inhalt der Icon-Engine von QDataStream in . Gibt true zurück, wenn der Inhalt gelesen wurde; andernfalls gibt false zurück.

QIconEngineDie Standardimplementierung des Programms 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 size, mode, state und scale zurück.

Das Argument scale entspricht in der Regel dem Gerätepixelverhältnis der Anzeige. 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 virtual_hook()-Methode erledigt, daher hängt diese Methode von der Unterstützung der Icon-Engine ab und funktioniert möglicherweise nicht mit allen Icon-Engines.

Hinweis: Einige Icon-Engines können scale in eine Ganzzahl umwandeln.

Siehe auch ScaledPixmapArgument.

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

Zusätzliche Methode, um QIconEngine zu erweitern, ohne neue virtuelle Methoden hinzuzufügen (und ohne die Binärkompatibilität zu verletzen). Die tatsächliche Aktion und das Format von data hängt vom Argument id ab, das in Wirklichkeit eine Konstante aus IconEngineHook enum ist.

Siehe auch IconEngineHook.

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

Schreibt den Inhalt dieser Engine in das Verzeichnis QDataStream out . Gibt true zurück, wenn der Inhalt geschrieben wurde; andernfalls wird false zurückgegeben.

QIconEngineDie Standard-Implementierung dieser Engine gibt immer false zurück.

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