Auf dieser Seite

QSvgGenerator Class

Die Klasse „QSvgGenerator“ stellt ein Zeichenobjekt bereit, das zum Erstellen von SVG-Zeichnungen verwendet wird. Mehr...

Header: #include <QSvgGenerator>
CMake: find_package(Qt6 REQUIRED COMPONENTS Svg)
target_link_libraries(mytarget PRIVATE Qt6::Svg)
qmake: QT += svg
Erbt von: QPaintDevice

Hinweis: Alle Funktionen dieser Klasse sind reentrant.

Öffentliche Typen

(since 6.5) enum class SvgVersion { SvgTiny12, Svg11 }

Eigenschaften

Öffentliche Funktionen

QSvgGenerator()
(since 6.5) QSvgGenerator(QSvgGenerator::SvgVersion version)
virtual ~QSvgGenerator()
QString description() const
QString fileName() const
QIODevice *outputDevice() const
int resolution() const
void setDescription(const QString &description)
void setFileName(const QString &fileName)
void setOutputDevice(QIODevice *outputDevice)
void setResolution(int dpi)
void setSize(const QSize &size)
void setTitle(const QString &title)
void setViewBox(const QRect &viewBox)
void setViewBox(const QRectF &viewBox)
QSize size() const
(since 6.5) QSvgGenerator::SvgVersion svgVersion() const
QString title() const
QRect viewBox() const
QRectF viewBoxF() const

Neu implementierte geschützte Funktionen

(since 6.11) virtual void initPainter(QPainter *painter) const override
virtual int metric(QPaintDevice::PaintDeviceMetric metric) const override
virtual QPaintEngine *paintEngine() const override

Ausführliche Beschreibung

Dieses Zeichen-Gerät repräsentiert eine Scalable Vector Graphics (SVG)-Zeichnung. Wie QPrinter ist es als schreibgeschütztes Gerät konzipiert, das die Ausgabe in einem bestimmten Format erzeugt.

Um eine SVG-Datei zu schreiben, müssen Sie zunächst die Ausgabe konfigurieren, indem Sie die Eigenschaften ` fileName ` oder ` outputDevice ` festlegen. In der Regel ist es erforderlich, die Größe der Zeichnung über die Eigenschaft ` size ` anzugeben; in einigen Fällen, in denen die Zeichnung in eine andere eingebettet wird, muss zusätzlich die Eigenschaft ` viewBox ` festgelegt werden.

QSvgGenerator generator;
generator.setFileName(path);
generator.setSize(QSize(200, 200));
generator.setViewBox(QRect(0, 0, 200, 200));
generator.setTitle(tr("SVG Generator Drawing"));
generator.setDescription(tr("An SVG drawing created by the SVG Generator"));

Weitere Metadaten können durch Festlegen der Eigenschaften „ title “, „ description “ und „ resolution “ angegeben werden.

Wie bei anderen Unterklassen von ` QPaintDevice ` wird ein ` QPainter `-Objekt verwendet, um auf eine Instanz dieser Klasse zu zeichnen:

QPainter painter;
painter.begin(&generator);
...
painter.end();

Das Zeichnen erfolgt auf dieselbe Weise wie bei jedem anderen Zeichen-Gerät. Es ist jedoch erforderlich, die Methoden ` QPainter::begin()` und ` end()` zu verwenden, um das Zeichnen auf dem Gerät explizit zu beginnen und zu beenden.

Siehe auch QSvgRenderer, QSvgWidget und Qt SVG C++ Classes.

Dokumentation zu Mitgliedstypen

[since 6.5] enum class QSvgGenerator::SvgVersion

Diese Aufzählung beschreibt die Version der SVG-Ausgabe des Generators.

KonstanteWertBeschreibung
QSvgGenerator::SvgVersion::SvgTiny120Das generierte Dokument entspricht der SVG-Tiny-1.2-Spezifikation.
QSvgGenerator::SvgVersion::Svg111Das generierte Dokument entspricht der SVG 1.1-Spezifikation.

Diese Enumeration wurde in Qt 6.5 eingeführt.

Eigenschaftsdokumentation

description : QString

Diese Eigenschaft enthält die Beschreibung der generierten SVG-Zeichnung

Zugriffsfunktionen:

QString description() const
void setDescription(const QString &description)

Siehe auch title.

fileName : QString

Diese Eigenschaft enthält den Ziel-Dateinamen für die generierte SVG-Zeichnung

Zugriffsfunktionen:

QString fileName() const
void setFileName(const QString &fileName)

Siehe auch outputDevice.

outputDevice : QIODevice*

Diese Eigenschaft enthält das Ausgabegerät für die generierte SVG-Zeichnung

Wenn sowohl das Ausgabegerät als auch der Dateiname angegeben sind, hat das Ausgabegerät Vorrang.

Zugriffsfunktionen:

QIODevice *outputDevice() const
void setOutputDevice(QIODevice *outputDevice)

Siehe auch „ fileName “.

resolution : int

Diese Eigenschaft gibt die Auflösung der generierten Ausgabe an

Die Auflösung wird in Punkten pro Zoll angegeben und dient zur Berechnung der physikalischen Größe einer SVG-Zeichnung.

Zugriffsfunktionen:

int resolution() const
void setResolution(int dpi)

Siehe auch size und viewBox.

size : QSize

Diese Eigenschaft gibt die Größe der generierten SVG-Zeichnung an

Standardmäßig ist diese Eigenschaft auf „ QSize(-1, -1) “ gesetzt, was bedeutet, dass der Generator die Attribute „width“ und „height“ des Elements „ <svg> “ nicht ausgeben soll.

Hinweis: Es ist nicht möglich, diese Eigenschaft zu ändern, solange im Generator ein „ QPainter “ aktiv ist.

Zugriffsfunktionen:

QSize size() const
void setSize(const QSize &size)

Siehe auch „ viewBox “ und „ resolution “.

title : QString

Diese Eigenschaft enthält den Titel der generierten SVG-Zeichnung

Zugriffsfunktionen:

QString title() const
void setTitle(const QString &title)

Siehe auch description.

viewBox : QRectF

Diese Eigenschaft enthält die viewBox der generierten SVG-Zeichnung

Standardmäßig ist diese Eigenschaft auf „ QRect(0, 0, -1, -1) “ gesetzt, was bedeutet, dass der Generator das „viewBox“-Attribut des „ <svg> “-Elements nicht ausgeben soll.

Hinweis: Es ist nicht möglich, diese Eigenschaft zu ändern, solange im Generator ein „ QPainter “ aktiv ist.

Zugriffsfunktionen:

QRectF viewBoxF() const
void setViewBox(const QRect &viewBox)
void setViewBox(const QRectF &viewBox)

Siehe auch „ viewBox()“, „ size “ und „ resolution “.

Dokumentation zu den Mitgliedsfunktionen

QSvgGenerator::QSvgGenerator()

Erstellt einen neuen Generator unter Verwendung des SVG Tiny 1.2-Profils.

[explicit, since 6.5] QSvgGenerator::QSvgGenerator(QSvgGenerator::SvgVersion version)

Erstellt einen neuen Generator, der die SVG-Version version verwendet.

Diese Funktion wurde in Qt 6.5 eingeführt.

[virtual noexcept] QSvgGenerator::~QSvgGenerator()

Zerstört den Generator.

[override virtual protected, since 6.11] void QSvgGenerator::initPainter(QPainter *painter) const

Diese Funktion wurde in Qt 6.11 eingeführt.

[override virtual protected] int QSvgGenerator::metric(QPaintDevice::PaintDeviceMetric metric) const

Implementiert neu: ` QPaintDevice::metric` (QPaintDevice::PaintDeviceMetric metric) const.

[override virtual protected] QPaintEngine *QSvgGenerator::paintEngine() const

Implementiert neu: ` QPaintDevice::paintEngine()` const.

Gibt die Paint-Engine zurück, die zum Rendern der Grafiken verwendet wurde, die in das SVG-Format konvertiert werden sollen.

[since 6.5] QSvgGenerator::SvgVersion QSvgGenerator::svgVersion() const

Gibt die Version des SVG-Dokuments zurück, das dieser Generator erzeugt.

Diese Funktion wurde in Qt 6.5 eingeführt.

QRect QSvgGenerator::viewBox() const

Gibt viewBoxF().toRect() zurück.

Siehe auch „ setViewBox()“ und „ viewBoxF()“.

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