QSvgGenerator Class

Die Klasse QSvgGenerator stellt ein Malgerät zur Verfügung, das zur Erstellung von SVG-Zeichnungen verwendet wird. Mehr...

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

Hinweis: Alle Funktionen in 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

Reimplementierte geschützte Funktionen

virtual int metric(QPaintDevice::PaintDeviceMetric metric) const override
virtual QPaintEngine *paintEngine() const override

Detaillierte Beschreibung

Dieses Malgerät stellt eine Scalable Vector Graphics (SVG) Zeichnung dar. Wie QPrinter ist es als reines Schreibgerät konzipiert, das eine 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 einstellen. In der Regel muss die Größe der Zeichnung durch Setzen der Eigenschaft size angegeben werden, und in einigen Fällen, in denen die Zeichnung in eine andere eingebunden wird, muss auch die Eigenschaft viewBox gesetzt werden.

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

Andere Metadaten können durch Setzen der Eigenschaften title, description und resolution festgelegt werden.

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

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

Das Malen erfolgt auf die gleiche Weise wie bei jedem anderen Malgerät. Es ist jedoch notwendig, die QPainter::begin() und end() zu verwenden, um das Malen auf dem Gerät explizit zu beginnen und zu beenden.

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

Dokumentation der 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 Aufzählung wurde in Qt 6.5 eingeführt.

Eigenschaft Dokumentation

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 Zieldateinamen 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 erzeugte SVG-Zeichnung

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

Zugriffsfunktionen:

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

Siehe auch fileName.

resolution : int

Diese Eigenschaft enthält die Auflösung der erzeugten Ausgabe

Die Auflösung wird in Dots per Inch 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 enthält die Größe der generierten SVG-Zeichnung

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

Hinweis: Es ist nicht möglich, diese Eigenschaft zu ändern, während ein QPainter auf dem Generator 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, während ein QPainter auf dem Generator aktiv ist.

Zugriffsfunktionen:

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

Siehe auch viewBox(), size, und resolution.

Dokumentation der Mitgliedsfunktionen

QSvgGenerator::QSvgGenerator()

Konstruiert einen neuen Generator unter Verwendung des SVG Tiny 1.2 Profils.

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

Konstruiert 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] int QSvgGenerator::metric(QPaintDevice::PaintDeviceMetric metric) const

Reimplements: QPaintDevice::metric(QPaintDevice::PaintDeviceMetric metric) const.

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

Reimplements: QPaintDevice::paintEngine() const.

Gibt die Paint-Engine zurück, die zum Rendern von Grafiken verwendet wird, die in Informationen im 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().

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