Sur cette page

QSvgGenerator Class

La classe QSvgGenerator fournit un périphérique de dessin permettant de créer des dessins SVG. En savoir plus...

En-tête : #include <QSvgGenerator>
CMake : find_package(Qt6 REQUIRED COMPONENTS Svg)
target_link_libraries(mytarget PRIVATE Qt6::Svg)
qmake : QT += svg
Hérite de : 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 dessin représente un dessin au format SVG (Scalable Vector Graphics). À l'instar de 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 de ` QPaintDevice `, un objet ` QPainter ` est utilisé pour dessiner sur une instance de cette classe :

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

Le tracé s’effectue de la même manière que pour tout autre périphérique de tracé. Cependant, il est nécessaire d’utiliser les méthodes QPainter::begin() et end() pour démarrer et terminer explicitement le tracé sur le périphérique.

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é respecte la spécification SVG Tiny 1.2.
QSvgGenerator::SvgVersion::Svg111Le document généré est conforme à la spécification SVG 1.1.

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

Documentation de la propriété

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 du fichier de destination pour le dessin SVG généré

Fonctions d'accès :

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

Voir également outputDevice.

outputDevice : QIODevice*

Cette propriété contient le périphérique de sortie du 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 a la priorité.

Fonctions d'accès :

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

Voir également fileName.

resolution : int

Cette propriété définit la résolution du résultat généré

La résolution est exprimée en points par pouce et sert à 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é contient la taille du dessin SVG généré

Par défaut, cette propriété est définie sur « QSize(-1, -1) », ce qui indique que le générateur ne doit pas inclure les attributs « width » et « height » de l'élément « <svg> ».

Remarque : il n’est pas possible de modifier cette propriété tant qu’une restriction « 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 également description.

viewBox : QRectF

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

Par défaut, cette propriété est définie sur « 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>.

Remarque : il n'est pas possible de modifier cette propriété tant qu'une restriction de type « 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()

Crée un nouveau générateur utilisant le profil SVG Tiny 1.2.

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

Crée 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 des informations sur le moteur de rendu utilisé pour afficher les graphiques à convertir au format SVG.

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

Renvoie la version du document SVG généré par ce générateur.

Cette fonction a été introduite dans Qt 6.5.

QRect QSvgGenerator::viewBox() const

Renvoie viewBoxF().toRect().

Voir également 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.