En esta página

QPicture Class

La clase QPicture es un dispositivo de pintura que graba y reproduce los comandos QPainter. Más...

Cabecera: #include <QPicture>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Hereda: QPaintDevice

Funciones Públicas

QPicture(int formatVersion = -1)
QPicture(const QPicture &pic)
virtual ~QPicture()
QRect boundingRect() const
const char *data() const
bool isNull() const
bool load(const QString &fileName)
bool load(QIODevice *dev)
bool play(QPainter *painter)
bool save(const QString &fileName)
bool save(QIODevice *dev)
void setBoundingRect(const QRect &r)
virtual void setData(const char *data, uint size)
uint size() const
void swap(QPicture &other)
QPicture &operator=(QPicture &&other)
QPicture &operator=(const QPicture &p)
QDataStream &operator<<(QDataStream &s, const QPicture &r)
QDataStream &operator>>(QDataStream &s, QPicture &r)

Descripción Detallada

Una imagen serializa comandos de pintado a un dispositivo IO en un formato independiente de la plataforma. A veces se denominan meta-archivos.

Las imágenes Qt utilizan un formato binario propietario. A diferencia de los formatos nativos de imagen (meta-archivo) en muchos sistemas de ventanas, las imágenes Qt no tienen limitaciones en cuanto a su contenido. Todo lo que se puede pintar en un widget o pixmap (por ejemplo, fuentes, pixmaps, regiones, gráficos transformados, etc.) también se puede almacenar en una imagen.

QPicture es independiente de la resolución, es decir, una QPicture puede mostrarse en diferentes dispositivos (por ejemplo, svg, pdf, ps, impresora y pantalla) con el mismo aspecto. Esto es necesario, por ejemplo, para la vista previa de impresión WYSIWYG. QPicture se ejecuta en los ppp por defecto del sistema, y escala el pintor para ajustarse a las diferencias de resolución según el sistema de ventanas.

Ejemplo de cómo grabar una imagen:

QPicture picture;
QPainter painter;
painter.begin(&picture);           // paint in picture
painter.drawEllipse(10,20, 80,70); // draw an ellipse
painter.end();                     // painting done
picture.save("drawing.pic");       // save picture

Observe que la lista de comandos del pintor se restablece en cada llamada a la función QPainter::begin().

Ejemplo de reproducción de una imagen:

QPicture picture;
picture.load("drawing.pic");           // load picture
QPainter painter;
painter.begin(&myImage);               // paint in myImage
painter.drawPicture(0, 0, picture);    // draw the picture at (0,0)
painter.end();                         // painting done

Las imágenes también pueden dibujarse utilizando play(). Algunos datos básicos sobre una imagen están disponibles, por ejemplo, size(), isNull() y boundingRect().

Nota: QPicture utiliza QDataStream para la serialización. Se aplica same reservations contra la lectura de datos no confiables.

Véase también QMovie.

Documentación de las funciones miembro

[explicit] QPicture::QPicture(int formatVersion = -1)

Construye una imagen vacía.

El parámetro formatVersion puede usarse para crear una QPicture que pueda ser leída por aplicaciones compiladas con versiones anteriores de Qt.

Ten en cuenta que el formatVersion por defecto es -1 que significa la versión actual, es decir, para Qt 4.0 un formatVersion de 7 es lo mismo que el formatVersion por defecto de -1.

La lectura de imágenes generadas por versiones anteriores de Qt no está soportada en Qt 4.0.

QPicture::QPicture(const QPicture &pic)

Construye una copia de pic.

Este constructor es rápido gracias a la compartición implícita.

[virtual noexcept] QPicture::~QPicture()

Destruye la imagen.

QRect QPicture::boundingRect() const

Devuelve el rectángulo que delimita la imagen o un rectángulo no válido si la imagen no contiene datos.

Véase también setBoundingRect().

const char *QPicture::data() const

Devuelve un puntero a los datos de la imagen. El puntero sólo es válido hasta que se llame a la siguiente función no-const sobre esta imagen. El puntero devuelto es 0 si la imagen no contiene datos.

Véase también setData(), size() y isNull().

bool QPicture::isNull() const

Devuelve true si la imagen no contiene datos; en caso contrario devuelve false.

bool QPicture::load(const QString &fileName)

Carga una imagen desde el archivo especificado por fileName y devuelve true si tiene éxito; en caso contrario invalida la imagen y devuelve false.

Véase también save().

bool QPicture::load(QIODevice *dev)

dev es el dispositivo a utilizar para la carga.

Se trata de una función sobrecargada.

bool QPicture::play(QPainter *painter)

Reproduce la imagen utilizando painter, y devuelve true si tiene éxito; en caso contrario devuelve false.

Esta función hace exactamente lo mismo que QPainter::drawPicture() con (x, y) = (0, 0).

Nota: El estado del pintor no es preservado por esta función.

bool QPicture::save(const QString &fileName)

Guarda una imagen en el archivo especificado por fileName y devuelve true si tiene éxito; en caso contrario devuelve false.

Véase también load().

bool QPicture::save(QIODevice *dev)

dev es el dispositivo a utilizar para guardar.

Se trata de una función sobrecargada.

void QPicture::setBoundingRect(const QRect &r)

Establece el rectángulo delimitador de la imagen en r. Se anula el valor calculado automáticamente.

Véase también boundingRect().

[virtual] void QPicture::setData(const char *data, uint size)

Ajusta los datos de imagen directamente desde data y size. Esta función copia los datos de entrada.

Véase también data() y size().

uint QPicture::size() const

Devuelve el tamaño de los datos de la imagen.

Véase también data().

[noexcept] void QPicture::swap(QPicture &other)

Cambia esta imagen por other. Esta operación es muy rápida y nunca falla.

[noexcept] QPicture &QPicture::operator=(QPicture &&other)

Mover-asigna other a esta instancia QPicture.

QPicture &QPicture::operator=(const QPicture &p)

Asigna la imagen p a esta imagen y devuelve una referencia a esta imagen.

No miembros relacionados

QDataStream &operator<<(QDataStream &s, const QPicture &r)

Escribe la imagen r en el flujo s y devuelve una referencia al flujo.

QDataStream &operator>>(QDataStream &s, QPicture &r)

Lee una imagen del flujo s en la imagen r y devuelve una referencia al flujo.

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