QPicture Class

Die Klasse QPicture ist ein Malgerät, das QPainter Befehle aufzeichnet und wiedergibt. Mehr...

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

Öffentliche Funktionen

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)

Detaillierte Beschreibung

Ein Bild serialisiert Malbefehle an ein IO-Gerät in einem plattformunabhängigen Format. Sie werden manchmal auch als Metadateien bezeichnet.

Qt-Bilder verwenden ein proprietäres Binärformat. Im Gegensatz zu den nativen Bildformaten (Metadateien) vieler Windowssysteme gibt es bei Qt-Bildern keine Einschränkungen bezüglich des Inhalts. Alles, was auf ein Widget oder eine Pixmap gezeichnet werden kann (z.B. Schriften, Pixmaps, Regionen, transformierte Grafiken, etc.) kann auch in einem Bild gespeichert werden.

QPicture ist auflösungsunabhängig, d.h. ein QPicture kann auf verschiedenen Geräten (z.B. svg, pdf, ps, Drucker und Bildschirm) gleich dargestellt werden. Dies ist z.B. für die WYSIWYG-Druckvorschau erforderlich. QPicture läuft in der Standarddpi-Auflösung des Systems und skaliert den Painter, um Unterschiede in der Auflösung je nach Fenstersystem auszugleichen.

Beispiel für die Aufnahme eines Bildes:

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

Beachten Sie, dass die Liste der Malerkommandos bei jedem Aufruf der Funktion QPainter::begin() zurückgesetzt wird.

Beispiel für die Wiedergabe eines Bildes:

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

Bilder können auch mit play() gezeichnet werden. Einige grundlegende Daten über ein Bild sind verfügbar, zum Beispiel size(), isNull() und boundingRect().

Siehe auch QMovie.

Dokumentation der Mitgliedsfunktionen

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

Konstruiert ein leeres Bild.

Der Parameter formatVersion kann verwendet werden, um ein QPicture zu erstellen, das von Anwendungen gelesen werden kann, die mit früheren Versionen von Qt kompiliert wurden.

Beachten Sie, dass die standardmäßige formatVersion -1 ist, was für die aktuelle Version steht, d.h. für Qt 4.0 ist eine formatVersion von 7 das gleiche wie die standardmäßige formatVersion von -1.

Das Lesen von Bildern, die von früheren Versionen von Qt erzeugt wurden, wird in Qt 4.0 nicht unterstützt.

QPicture::QPicture(const QPicture &pic)

Konstruiert eine Kopie von pic.

Dieser Konstruktor ist dank der impliziten Freigabe schnell.

[virtual noexcept] QPicture::~QPicture()

Zerstört das Bild.

QRect QPicture::boundingRect() const

Liefert das begrenzende Rechteck des Bildes oder ein ungültiges Rechteck, wenn das Bild keine Daten enthält.

Siehe auch setBoundingRect().

const char *QPicture::data() const

Gibt einen Zeiger auf die Bilddaten zurück. Der Zeiger ist nur so lange gültig, bis die nächste nicht-konstante Funktion für dieses Bild aufgerufen wird. Der zurückgegebene Zeiger ist 0, wenn das Bild keine Daten enthält.

Siehe auch setData(), size(), und isNull().

bool QPicture::isNull() const

Gibt true zurück, wenn das Bild keine Daten enthält; andernfalls wird false zurückgegeben.

bool QPicture::load(const QString &fileName)

Lädt ein Bild aus der durch fileName angegebenen Datei und gibt bei Erfolg true zurück; andernfalls wird das Bild ungültig gemacht und false zurückgegeben.

Siehe auch save().

bool QPicture::load(QIODevice *dev)

Dies ist eine überladene Funktion.

dev ist das Gerät, das zum Laden verwendet wird.

bool QPicture::play(QPainter *painter)

Gibt das Bild unter Verwendung von painter wieder und gibt bei Erfolg true zurück, andernfalls false.

Diese Funktion tut genau das Gleiche wie QPainter::drawPicture() mit (x, y) = (0, 0).

Hinweis: Der Zustand des Malers wird von dieser Funktion nicht beibehalten.

bool QPicture::save(const QString &fileName)

Speichert ein Bild in der durch fileName angegebenen Datei und gibt bei Erfolg true zurück; andernfalls false.

Siehe auch load().

bool QPicture::save(QIODevice *dev)

Dies ist eine überladene Funktion.

dev ist das Gerät, das zum Speichern verwendet werden soll.

void QPicture::setBoundingRect(const QRect &r)

Setzt das Begrenzungsrechteck des Bildes auf r. Der automatisch berechnete Wert wird außer Kraft gesetzt.

Siehe auch boundingRect().

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

Stellt die Bilddaten direkt von data und size ein. Diese Funktion kopiert die Eingabedaten.

Siehe auch data() und size().

uint QPicture::size() const

Gibt die Größe der Bilddaten zurück.

Siehe auch data().

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

Tauscht dieses Bild mit other aus. Dieser Vorgang ist sehr schnell und schlägt nie fehl.

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

Verschieben - weist other dieser QPicture Instanz zu.

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

Weist diesem Bild p zu und gibt einen Verweis auf dieses Bild zurück.

Verwandte Nicht-Mitglieder

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

Schreibt das Bild r in den Stream s und gibt einen Verweis auf den Stream zurück.

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

Liest ein Bild aus dem Stream s in das Bild r und gibt eine Referenz auf den Stream zurück.

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