En esta página

QSvgGenerator Class

La clase QSvgGenerator proporciona un dispositivo de pintura que se utiliza para crear dibujos SVG. Más...

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

Nota: Todas las funciones de esta clase son reentrantes.

Tipos Públicos

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

Propiedades

Funciones públicas

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

Funciones protegidas reimplementadas

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

Descripción detallada

Este dispositivo de pintura representa un dibujo de Gráficos Vectoriales Escalables (SVG). Al igual que QPrinter, está diseñado como un dispositivo de sólo escritura que genera la salida en un formato específico.

Para escribir un archivo SVG, primero es necesario configurar la salida estableciendo las propiedades fileName o outputDevice. Normalmente es necesario especificar el tamaño del dibujo estableciendo la propiedad size, y en algunos casos en los que el dibujo se incluirá en otro, también es necesario establecer la propiedad viewBox.

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

Se pueden especificar otros metadatos estableciendo las propiedades title, description y resolution.

Al igual que con otras subclases de QPaintDevice, se utiliza un objeto QPainter para pintar sobre una instancia de esta clase:

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

La pintura se realiza de la misma manera que para cualquier otro dispositivo de pintura. Sin embargo, es necesario utilizar QPainter::begin() y end() para iniciar y finalizar explícitamente la pintura en el dispositivo.

Véase también QSvgRenderer, QSvgWidget, y Qt SVG C++ Classes.

Documentación de tipos de miembros

[since 6.5] enum class QSvgGenerator::SvgVersion

Esta enumeración describe la versión de la salida SVG del generador.

ConstanteValorDescripción
QSvgGenerator::SvgVersion::SvgTiny120El documento generado sigue la especificación SVG Tiny 1.2.
QSvgGenerator::SvgVersion::Svg111El documento generado sigue la especificación SVG 1.1.

Este enum se introdujo en Qt 6.5.

Documentación de propiedades

description : QString

Esta propiedad contiene la descripción del dibujo SVG generado

Funciones de acceso:

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

Véase también title.

fileName : QString

Esta propiedad contiene el nombre de archivo de destino para el dibujo SVG generado

Funciones de acceso:

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

Véase también outputDevice.

outputDevice : QIODevice*

Esta propiedad contiene el dispositivo de salida para el dibujo SVG generado.

Si se especifican tanto el dispositivo de salida como el nombre de archivo, tendrá preferencia el dispositivo de salida.

Funciones de acceso:

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

Véase también fileName.

resolution : int

Esta propiedad contiene la resolución de la salida generada

La resolución se especifica en puntos por pulgada, y se utiliza para calcular el tamaño físico de un dibujo SVG.

Funciones de acceso:

int resolution() const
void setResolution(int dpi)

Véase también size y viewBox.

size : QSize

Esta propiedad contiene el tamaño del dibujo SVG generado.

Por defecto, esta propiedad se establece en QSize(-1, -1), lo que indica que el generador no debe mostrar los atributos de anchura y altura del elemento <svg>.

Nota: No es posible cambiar esta propiedad mientras un QPainter está activo en el generador.

Funciones de acceso:

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

Véase también viewBox y resolution.

title : QString

Esta propiedad contiene el título del dibujo SVG generado

Funciones de acceso:

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

Véase también description.

viewBox : QRectF

Esta propiedad contiene el atributo viewBox del dibujo SVG generado.

Por defecto, esta propiedad se establece en QRect(0, 0, -1, -1), lo que indica que el generador no debe mostrar el atributo viewBox del elemento <svg>.

Nota: No es posible modificar esta propiedad mientras un QPainter está activo en el generador.

Funciones de acceso:

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

Véase también viewBox(), size, y resolution.

Documentación de las funciones miembro

QSvgGenerator::QSvgGenerator()

Crea un nuevo generador utilizando el perfil SVG Tiny 1.2.

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

Construye un nuevo generador que utiliza la versión SVG version.

Esta función se introdujo en Qt 6.5.

[virtual noexcept] QSvgGenerator::~QSvgGenerator()

Destruye el generador.

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

Esta función se introdujo en Qt 6.11.

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

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

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

Reimplementa: QPaintDevice::paintEngine() const.

Devuelve el motor de pintura utilizado para renderizar los gráficos que se van a convertir a información en formato SVG.

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

Devuelve la versión del documento SVG que este generador está produciendo.

Esta función se introdujo en Qt 6.5.

QRect QSvgGenerator::viewBox() const

Devuelve viewBoxF().toRect().

Véase también setViewBox() y 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.