Sur cette page

QPicture Class

La classe QPicture est un dispositif de peinture qui enregistre et rejoue les commandes QPainter. Plus...

En-tête : #include <QPicture>
CMake : find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake : QT += gui
Héritages : 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 peinture vers un périphérique d'E/S dans un format indépendant de la plate-forme. Elles sont parfois appelées métafichiers.

Les images Qt utilisent un format binaire propriétaire. Contrairement aux formats d'images natifs (méta-fichiers) de nombreux systèmes de fenêtres, les images Qt n'ont aucune limitation quant à leur contenu. Tout ce qui peut être peint sur un widget ou une pixmap (par exemple, les polices, les pixmaps, les régions, les graphiques transformés, etc.

QPicture est indépendant de la résolution, c'est-à-dire qu'une QPicture peut être affichée sur différents appareils (par exemple svg, pdf, ps, imprimante et écran) en ayant la même apparence. Ceci est, par exemple, nécessaire pour l'aperçu d'impression WYSIWYG. QPicture fonctionne avec la résolution par défaut du système (dpi) et adapte le peintre aux différences de résolution en fonction du 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 à la fonction QPainter::begin().

Exemple de relecture 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 la fonction 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. Le site same reservations contre la lecture de données non fiables s'applique.

Voir également QMovie.

Documentation des fonctions membres

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

Construit une image vide.

Le paramètre formatVersion peut être utilisé pour créer une QPicture qui peut être lue par des applications compilées avec des versions antérieures de Qt.

Notez que le formatVersion par défaut est -1, ce qui signifie la version actuelle, c'est-à-dire que pour Qt 4.0, un formatVersion de 7 est le même que le formatVersion par défaut de -1.

La lecture d'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)

Construit une copie de pic.

Ce constructeur est rapide grâce au partage implicite.

[virtual noexcept] QPicture::~QPicture()

Détruit l'image.

QRect QPicture::boundingRect() const

Renvoie le rectangle de délimitation de l'image ou un rectangle invalide si l'image ne contient pas de données.

Voir également setBoundingRect().

const char *QPicture::data() const

Renvoie un pointeur sur les données de l'image. Le pointeur n'est valide que jusqu'à ce que la prochaine fonction non-const soit appelée sur cette image. Le pointeur retourné est 0 si l'image ne contient aucune donnée.

Voir aussi setData(), size(), et isNull().

bool QPicture::isNull() const

Renvoie true si l'image ne contient pas de données ; sinon, renvoie false.

bool QPicture::load(const QString &fileName)

Charge une image à partir du fichier spécifié par fileName et renvoie vrai en cas de succès ; sinon, invalide l'image et renvoie false.

Voir aussi save().

bool QPicture::load(QIODevice *dev)

dev est le dispositif à utiliser pour le chargement.

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

bool QPicture::play(QPainter *painter)

Rejoue l'image en utilisant painter, et renvoie true en cas de succès ; 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 préservé par cette fonction.

bool QPicture::save(const QString &fileName)

Enregistre une image dans le fichier spécifié par fileName et renvoie vrai en cas de succès, sinon renvoie false.

Voir aussi load().

bool QPicture::save(QIODevice *dev)

dev est le dispositif à 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 à r. La valeur calculée automatiquement est remplacée.

Voir également boundingRect().

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

Règle 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 de l'image.

Voir aussi data().

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

Remplace cette image par other. Cette opération est très rapide et n'échoue jamais.

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

Move-assigne other à cette instance QPicture.

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

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

Non-membres apparentés

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

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

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

Lit une image du flux s dans l'image r et 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.