Sur cette page

QPicture Class

La classe QPicture est un périphérique de dessin qui enregistre et réexécute les commandes d'QPainter. En savoir plus...

En-tête : #include <QPicture>
CMake : find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake : QT += gui
Hérite de : QPaintDevice

Fonctions publiques

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)

Description détaillée

Une image sérialise les commandes de dessin vers un périphérique d'E/S dans un format indépendant de la plate-forme. On les appelle parfois des métafichiers.

Les images Qt utilisent un format binaire propriétaire. Contrairement aux formats d’image natifs (méta-fichiers) de nombreux systèmes de fenêtrage, les images Qt ne présentent aucune restriction quant à leur contenu. Tout ce qui peut être dessiné sur un widget ou une image bitmap (par exemple, des polices, des images bitmap, des régions, des graphiques transformés, etc.) peut également être stocké dans une image.

QPicture est indépendant de la résolution, c'est-à-dire qu'un QPicture peut être affiché sur différents périphériques (par exemple svg, pdf, ps, imprimante et écran) avec le même rendu. Cela est notamment nécessaire pour l'aperçu avant impression WYSIWYG. QPicture fonctionne avec la résolution par défaut du système (dpi) et adapte l'échelle du dessin en fonction des différences de résolution propres au système de fenêtrage.

Exemple d’enregistrement d’une image :

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

Notez que la liste des commandes du peintre est réinitialisée à chaque appel de la fonction ` QPainter::begin()`.

Exemple de lecture d’une image :

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

Les images peuvent également être dessinées à l’aide de ` play()`. Certaines données de base concernant une image sont disponibles, par exemple ` size()`, ` isNull()` et ` boundingRect()`.

Remarque : QPicture utilise QDataStream pour la sérialisation. Les same reservations s relatives à la lecture de données non fiables s’appliquent.

Voir également QMovie.

Documentation des fonctions membres

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

Crée une image vide.

Le paramètre ` formatVersion ` peut être utilisé pour créer un `QPicture` lisible par les applications compilées avec des versions antérieures de Qt.

Notez que la valeur par défaut de formatVersion est -1, ce qui correspond à la version actuelle ; ainsi, pour Qt 4.0, une valeur de formatVersion égale à 7 équivaut à la valeur par défaut de -1.

La lecture des images générées par des versions antérieures de Qt n'est pas prise en charge dans Qt 4.0.

QPicture::QPicture(const QPicture &pic)

Crée une copie de ` pic`.

Ce constructeur est rapide grâce au partage implicite.

[virtual noexcept] QPicture::~QPicture()

Ça gâche l'image.

QRect QPicture::boundingRect() const

Renvoie le rectangle englobant de l'image ou un rectangle non valide si l'image ne contient aucune donnée.

Voir également setBoundingRect().

const char *QPicture::data() const

Renvoie un pointeur vers les données de l'image. Ce pointeur n'est valable que jusqu'à l'appel de la prochaine fonction non-const sur cette image. Le pointeur renvoyé est égal à 0 si l'image ne contient aucune donnée.

Voir également setData(), size() et isNull().

bool QPicture::isNull() const

Renvoie « true » si l'image ne contient aucune donnée ; sinon, renvoie « false ».

bool QPicture::load(const QString &fileName)

Charge une image à partir du fichier spécifié par fileName et renvoie « true » en cas de réussite ; sinon, invalide l'image et renvoie « false ».

Voir également save().

bool QPicture::load(QIODevice *dev)

dev C'est le périphérique à utiliser pour le chargement.

Il s'agit d'une fonction surchargée.

bool QPicture::play(QPainter *painter)

Lecture de l'image à l'aide de ` painter` et renvoie ` true ` en cas de réussite ; sinon, renvoie ` false`.

Cette fonction fait exactement la même chose que ` QPainter::drawPicture()` avec (x, y) = (0, 0).

Remarque : l'état du peintre n'est pas conservé par cette fonction.

bool QPicture::save(const QString &fileName)

Enregistre une image dans le fichier spécifié par fileName et renvoie « true » en cas de réussite ; sinon, renvoie « false ».

Voir également load().

bool QPicture::save(QIODevice *dev)

dev C'est le périphérique à utiliser pour l'enregistrement.

Il s'agit d'une fonction surchargée.

void QPicture::setBoundingRect(const QRect &r)

Définit le rectangle de délimitation de l'image sur r. La valeur calculée automatiquement est remplacée.

Voir aussi boundingRect().

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

Définit les données d'image directement à partir de data et size. Cette fonction copie les données d'entrée.

Voir également data() et size().

uint QPicture::size() const

Renvoie la taille des données d'image.

Voir aussi data().

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

Permute cette image avec celle de other. Cette opération est très rapide et fonctionne toujours.

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

Cette opération attribue l'other à cette instance QPicture.

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

Attribue l’ p d’image à cette image et renvoie une référence à cette image.

Connexes (non-membres)

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

Écrit l'image r dans le flux s et renvoie une référence à ce flux.

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

Lit une image à partir du flux s et l'enregistre dans l'image r, puis renvoie une référence au flux.

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