Sur cette page

QSvgGenerator Class

La classe QSvgGenerator fournit un dispositif de peinture utilisé pour créer des dessins SVG. Plus d'informations...

En-tête : #include <QSvgGenerator>
CMake : find_package(Qt6 REQUIRED COMPONENTS Svg)
target_link_libraries(mytarget PRIVATE Qt6::Svg)
qmake : QT += svg
Héritages : QPaintDevice

Remarque : toutes les fonctions de cette classe sont réentrantes.

Types publics

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

Propriétés

Fonctions publiques

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

Fonctions protégées réimplémentées

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

Description détaillée

Ce périphérique de peinture représente un dessin SVG (Scalable Vector Graphics). Comme QPrinter, il est conçu comme un périphérique en écriture seule qui génère une sortie dans un format spécifique.

Pour écrire un fichier SVG, vous devez d'abord configurer la sortie en définissant les propriétés fileName ou outputDevice. Il est généralement nécessaire de spécifier la taille du dessin en définissant la propriété size, et dans certains cas où le dessin sera inclus dans un autre, la propriété viewBox doit également être définie.

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"));

D'autres métadonnées peuvent être spécifiées en définissant les propriétés title, description et resolution.

Comme pour les autres sous-classes QPaintDevice, un objet QPainter est utilisé pour peindre sur une instance de cette classe :

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

La peinture s'effectue de la même manière que pour tout autre dispositif de peinture. Cependant, il est nécessaire d'utiliser QPainter::begin() et end() pour commencer et terminer explicitement la peinture sur le dispositif.

Voir également QSvgRenderer, QSvgWidget, et Qt SVG C++ Classes.

Documentation sur les types de membres

[since 6.5] enum class QSvgGenerator::SvgVersion

Cette énumération décrit la version de la sortie SVG du générateur.

ConstanteValeurDescription
QSvgGenerator::SvgVersion::SvgTiny120Le document généré suit la spécification SVG Tiny 1.2.
QSvgGenerator::SvgVersion::Svg111Le document généré suit la spécification SVG 1.1.

Cette énumération a été introduite dans Qt 6.5.

Documentation sur les propriétés

description : QString

Cette propriété contient la description du dessin SVG généré

Fonctions d'accès :

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

Voir aussi title.

fileName : QString

Cette propriété contient le nom de fichier cible pour le dessin SVG généré.

Fonctions d'accès :

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

Voir aussi outputDevice.

outputDevice : QIODevice*

Cette propriété indique le périphérique de sortie pour le dessin SVG généré

Si le périphérique de sortie et le nom de fichier sont tous deux spécifiés, le périphérique de sortie aura la priorité.

Fonctions d'accès :

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

Voir aussi fileName.

resolution : int

Cette propriété indique la résolution de la sortie générée

La résolution est spécifiée en points par pouce et est utilisée pour calculer la taille physique d'un dessin SVG.

Fonctions d'accès :

int resolution() const
void setResolution(int dpi)

Voir également size et viewBox.

size : QSize

Cette propriété indique la taille du dessin SVG généré

Par défaut, cette propriété est fixée à QSize(-1, -1), ce qui indique que le générateur ne doit pas produire les attributs de largeur et de hauteur de l'élément <svg>.

Note : Il n'est pas possible de modifier cette propriété lorsqu'une page QPainter est active sur le générateur.

Fonctions d'accès :

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

Voir également viewBox et resolution.

title : QString

Cette propriété contient le titre du dessin SVG généré

Fonctions d'accès :

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

Voir aussi description.

viewBox : QRectF

Cette propriété contient la viewBox du dessin SVG généré

Par défaut, cette propriété est fixée à QRect(0, 0, -1, -1), ce qui indique que le générateur ne doit pas produire l'attribut viewBox de l'élément <svg>.

Note : Il n'est pas possible de modifier cette propriété lorsqu'une page QPainter est active sur le générateur.

Fonctions d'accès :

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

Voir également viewBox(), size et resolution.

Documentation des fonctions membres

QSvgGenerator::QSvgGenerator()

Construit un nouveau générateur en utilisant le profil SVG Tiny 1.2.

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

Construit un nouveau générateur qui utilise la version SVG version.

Cette fonction a été introduite dans Qt 6.5.

[virtual noexcept] QSvgGenerator::~QSvgGenerator()

Détruit le générateur.

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

Cette fonction a été introduite dans Qt 6.11.

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

Réimplémente : QPaintDevice::metric(QPaintDevice::PaintDeviceMetric metric) const.

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

Réimplémente : QPaintDevice::paintEngine() const.

Renvoie le moteur de peinture utilisé pour le rendu des graphiques à convertir en informations au format SVG.

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

Retourne la version du document SVG que ce générateur est en train de produire.

Cette fonction a été introduite dans Qt 6.5.

QRect QSvgGenerator::viewBox() const

Renvoie viewBoxF().toRect().

Voir aussi setViewBox() et 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.