Auf dieser Seite

QGraphicsSvgItem Class

Die Klasse „QGraphicsSvgItem“ ist ein „ QGraphicsItem “, mit dem der Inhalt von SVG-Dateien dargestellt werden kann. Mehr...

Header: #include <qgraphicssvgitem.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS SvgWidgets)
target_link_libraries(mytarget PRIVATE Qt6::SvgWidgets)
qmake: QT += svgwidgets
Erbt von: QGraphicsObject

Eigenschaften

Öffentliche Funktionen

QGraphicsSvgItem(QGraphicsItem *parent = nullptr)
QGraphicsSvgItem(const QString &fileName, QGraphicsItem *parent = nullptr)
QString elementId() const
QSize maximumCacheSize() const
QSvgRenderer *renderer() const
void setElementId(const QString &id)
void setMaximumCacheSize(const QSize &size)
void setSharedRenderer(QSvgRenderer *renderer)

Neu implementierte öffentliche Funktionen

virtual QRectF boundingRect() const override
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override
virtual int type() const override

Ausführliche Beschreibung

QGraphicsSvgItem bietet eine Möglichkeit, SVG-Dateien auf QGraphicsView zu rendern. QGraphicsSvgItem kann erstellt werden, indem die zu rendernde SVG-Datei an den Konstruktor übergeben wird oder indem explizit ein gemeinsam genutzter QSvgRenderer festgelegt wird.

Beachten Sie, dass das Festlegen von ` QSvgRenderer ` für ein `QGraphicsSvgItem` nicht dazu führt, dass das Item die Verantwortung für den Renderer übernimmt. Bei Verwendung der Methode ` setSharedRenderer()` muss daher sichergestellt werden, dass die Lebensdauer des ` QSvgRenderer `-Objekts mindestens so lang ist wie die des `QGraphicsSvgItem`.

QGraphicsSvgItem bietet über die Methode „ setElementId “ die Möglichkeit, nur Teile der SVG-Dateien zu rendern. Wird die Methode „ setElementId()“ aufgerufen, wird nur das SVG-Element (und seine untergeordneten Elemente) mit der übergebenen ID gerendert. Dies bietet eine bequeme Möglichkeit, große SVG-Dateien, die eine Reihe von einzelnen Elementen enthalten, selektiv zu rendern. Der folgende Code rendert beispielsweise nur die Joker aus einer SVG-Datei, die ein gesamtes Kartenspiel enthält:

QSvgRenderer *renderer = new QSvgRenderer(QLatin1String("SvgCardDeck.svg"));
QGraphicsSvgItem *black = new QGraphicsSvgItem();
QGraphicsSvgItem *red   = new QGraphicsSvgItem();

black->setSharedRenderer(renderer);
black->setElementId(QLatin1String("black_joker"));

red->setSharedRenderer(renderer);
red->setElementId(QLatin1String("red_joker"));

Die Größe des Elements kann durch direkte Bearbeitung der Transformationsmatrix des Elements festgelegt werden.

Standardmäßig wird die SVG-Darstellung im Modus „ QGraphicsItem::DeviceCoordinateCache “ zwischengespeichert, um die Anzeige der Elemente zu beschleunigen. Das Zwischenspeichern kann deaktiviert werden, indem „ QGraphicsItem::NoCache “ an die Methode „ QGraphicsItem::setCacheMode()“ übergeben wird.

Siehe auch „ QSvgWidget “, Qt SVG C++ Classes, QGraphicsItem sowie QGraphicsView.

Dokumentation zu Eigenschaften

elementId : QString

Diese Eigenschaft enthält die XML-ID des Elements.

Zugriffsfunktionen:

QString elementId() const
void setElementId(const QString &id)

maximumCacheSize : QSize

Diese Eigenschaft gibt die maximale Größe des Gerätekoordinaten-Caches für dieses Element an.

Zugriffsfunktionen:

QSize maximumCacheSize() const
void setMaximumCacheSize(const QSize &size)

Dokumentation zu den Member-Funktionen

QGraphicsSvgItem::QGraphicsSvgItem(QGraphicsItem *parent = nullptr)

Erstellt ein neues SVG-Element mit dem angegebenen „ parent “.

QGraphicsSvgItem::QGraphicsSvgItem(const QString &fileName, QGraphicsItem *parent = nullptr)

Erstellt ein neues Element mit dem angegebenen ` parent ` und lädt den Inhalt der SVG-Datei mit der angegebenen ` fileName`.

[override virtual] QRectF QGraphicsSvgItem::boundingRect() const

Implementiert neu: ` QGraphicsItem::boundingRect()` const.

Gibt das Begrenzungsrechteck dieses Elements zurück.

QString QGraphicsSvgItem::elementId() const

Gibt die XML-ID des Elements zurück, das gerade gerendert wird. Gibt eine leere Zeichenkette zurück, wenn die gesamte Datei gerendert wird.

Hinweis: Getter-Funktion für die Eigenschaft `elementId`.

Siehe auch ` setElementId()`.

QSize QGraphicsSvgItem::maximumCacheSize() const

Gibt die aktuelle maximale Größe des Gerätekoordinaten-Caches für dieses Element zurück. Wenn das Element im Modus „ QGraphicsItem::DeviceCoordinateCache “ zwischengespeichert wird, wird die Zwischenspeicherung umgangen, wenn die Ausdehnung des Elements in Gerätekoordinaten größer ist als die maximale Größe.

Die standardmäßige maximale Cache-Größe beträgt 1024x768. ` QPixmapCache::cacheLimit()` gibt die kumulativen Grenzen des gesamten Caches an, während `maximumCacheSize()` sich auf die maximale Cache-Größe für dieses bestimmte Element bezieht.

Hinweis: Getter -Funktion für die Eigenschaft „maximumCacheSize“.

Siehe auch „ setMaximumCacheSize()“ und „ QGraphicsItem::cacheMode()“.

[override virtual] void QGraphicsSvgItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr)

Implementiert: ` QGraphicsItem::paint` (`QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget`).

QSvgRenderer *QGraphicsSvgItem::renderer() const

Gibt den aktuell verwendeten „ QSvgRenderer “ zurück.

void QGraphicsSvgItem::setElementId(const QString &id)

Setzt die XML-ID des Elements auf „ id “.

Hinweis: Setter -Funktion für die Eigenschaft „ elementId “.

Siehe auch „ elementId()“.

void QGraphicsSvgItem::setMaximumCacheSize(const QSize &size)

Legt die maximale Größe des Gerätekoordinaten-Caches für das Element auf size fest. Wenn das Element im Modus QGraphicsItem::DeviceCoordinateCache zwischengespeichert wird, wird die Zwischenspeicherung umgangen, wenn die Ausdehnung des Elements in Gerätekoordinaten größer ist als size.

Der Cache entspricht dem „ QPixmap “, der zum Zwischenspeichern der Renderergebnisse verwendet wird. Verwenden Sie „ QPixmapCache::setCacheLimit()“, um Beschränkungen für den gesamten Cache festzulegen, und verwenden Sie „setMaximumCacheSize()“, wenn Sie die Cache-Größe für einzelne Elemente festlegen.

Hinweis: Setter -Funktion für die Eigenschaft ` maximumCacheSize`.

Siehe auch ` maximumCacheSize()` und ` QGraphicsItem::cacheMode()`.

void QGraphicsSvgItem::setSharedRenderer(QSvgRenderer *renderer)

Legt „ renderer “ als gemeinsam genutzten „ QSvgRenderer “ für das Element fest. Mit dieser Methode kann ein und derselbe „ QSvgRenderer “ für mehrere Elemente gemeinsam genutzt werden. Das bedeutet, dass die SVG-Datei nur einmal geparst wird. Der an diese Methode übergebene „ QSvgRenderer “ muss so lange vorhanden sein, wie dieses Element verwendet wird.

[override virtual] int QGraphicsSvgItem::type() const

Implementiert: ` QGraphicsItem::type()` const.

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