Auf dieser Seite

QCanvasOffscreenCanvas Class

QCanvasOffscreenCanvas stellt eine Offscreen-Zeichenfläche dar, auf die „ QCanvasPainter “ abzielen kann. Mehr...

Header: #include <QCanvasOffscreenCanvas>
CMake: find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)
target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter)
Seit: Qt 6.11

Öffentliche Typen

enum class Flag { PreserveContents, MipMaps }
flags Flags

Öffentliche Funktionen

QCanvasOffscreenCanvas(const QCanvasOffscreenCanvas &canvas)
QCanvasOffscreenCanvas(QCanvasOffscreenCanvas &&other)
~QCanvasOffscreenCanvas()
QColor fillColor() const
QCanvasOffscreenCanvas::Flags flags() const
int height() const
bool isNull() const
void setFillColor(QColor color)
QSize size() const
QRhiTexture *texture() const
int width() const
QCanvasOffscreenCanvas &operator=(const QCanvasOffscreenCanvas &canvas)
bool operator!=(const QCanvasOffscreenCanvas &lhs, const QCanvasOffscreenCanvas &rhs)
bool operator==(const QCanvasOffscreenCanvas &lhs, const QCanvasOffscreenCanvas &rhs)

Ausführliche Beschreibung

Eine Offscreen-Zeichenfläche ist im Wesentlichen ein Farbpuffer (ein „ QRhiTexture “) sowie möglicherweise weitere zugehörige Grafikressourcen. Nachdem Inhalte in den Farbpuffer der Zeichenfläche gerendert wurden, kann die Zeichenfläche mit „ registered “ an den Painter übergeben werden, um einen „ QCanvasImage “ abzurufen, der dann in „ drawImage()“-Aufrufen oder als „ image pattern “ verwendet werden kann.

Um eine Offscreen-Canvas zu erstellen, rufen Sie ` QCanvasPainter::createCanvas()` auf. Um eine Offscreen-Canvas mit Zeichenbefehlen anzusteuern, rufen Sie bei der Arbeit mit der Low-Level-API die entsprechende Überladung von ` QCanvasRhiPaintDriver::beginPaint()` auf oder verwenden Sie ` QCanvasPainterWidget::beginCanvasPainting()` bzw. ` QCanvasPainterItemRenderer::beginCanvasPainting()`, wenn Sie die Komfort-Widget- oder ` Qt Quick `-Elementklassen nutzen.

Ähnlich wie bei ` QCanvasImage ` und ` QCanvasBrush` wird `QCanvasOffscreenCanvas` explizit gemeinsam genutzt. Weitere Informationen finden Sie unter „Implicit Data Sharing “ und „ QSharedDataPointer “.

Hinweis: Wie bei „ QCanvasImage “ kann ein „QCanvasOffscreenCanvas“ als ein Objekt betrachtet werden, das lediglich Handles enthält. Selbst wenn eine Trennung erfolgt, werden die eigentlichen Ressourcen, z. B. die zugrunde liegende Textur und die darin enthaltenen Bilddaten, niemals tatsächlich kopiert oder dupliziert. Der eigentliche Eigentümer aller realen Grafikressourcen (z. B. eines „ QRhiTexture “) ist der „ QCanvasPainter “, der das „QCanvasOffscreenCanvas“ über „ createCanvas()“ ausgegeben hat.

Ein Canvas gehört immer dem „ QCanvasPainter “, der ihn erstellt hat. Das manuelle Löschen von Canvases erfolgt durch den Aufruf von ` destroyCanvas()`. In den meisten Fällen ist dies jedoch nicht erforderlich, da der „Painter“ alle Canvases bei seiner eigenen Löschung automatisch löscht.

Dokumentation zu Mitgliedstypen

enum class QCanvasOffscreenCanvas::Flag
flags QCanvasOffscreenCanvas::Flags

Legt die Flags für die Leinwand fest.

KonstanteWertBeschreibung
QCanvasOffscreenCanvas::Flag::PreserveContents0x01Gibt an, dass der Inhalt der Leinwand beim Zeichnen darauf erhalten bleibt. Dies kann sich je nach GPU-Architektur negativ auf die Leistung auswirken. Weitere Informationen finden Sie unter QRhiTextureRenderTarget::PreserveColorContents. Das Setzen dieses Flags wird nicht unterstützt, wenn die Anzahl der Samples größer als 1 ist.
QCanvasOffscreenCanvas::Flag::MipMaps0x02Gibt an, dass für die Backing-Textur der Leinwand Mipmapping aktiviert sein soll. Die Einstellung dieses Flags wird nicht unterstützt, wenn die Anzahl der Samples größer als 1 ist. Beachten Sie, dass die Mipmap-Sequenz beim Aufruf von ` addImage()` mit gesetztem ` GenerateMipmaps `-Flag generiert wird. Dies bedeutet, dass `addImage()` jedes Mal aufgerufen werden muss, wenn sich der Inhalt der Leinwand ändert, damit die Mipmap-Kette neu generiert wird. Eine häufige Mipmap-Generierung kann sich negativ auf die Leistung auswirken.

Der Typ „Flags“ ist ein typedef für QFlags<Flag>. Er speichert eine OR-Kombination von Flag-Werten.

Dokumentation der Mitgliedsfunktionen

QCanvasOffscreenCanvas::QCanvasOffscreenCanvas(const QCanvasOffscreenCanvas &canvas)

Kopierkonstruktor.

[constexpr noexcept default] QCanvasOffscreenCanvas::QCanvasOffscreenCanvas(QCanvasOffscreenCanvas &&other)

Erstellt eine Instanz von ` QCanvasOffscreenCanvas`.

[noexcept] QCanvasOffscreenCanvas::~QCanvasOffscreenCanvas()

Destruktor.

QColor QCanvasOffscreenCanvas::fillColor() const

Gibt die aktuelle Füllfarbe zurück.

Siehe auch „ setFillColor()“.

QCanvasOffscreenCanvas::Flags QCanvasOffscreenCanvas::flags() const

Gibt die Flags zurück, mit denen die Leinwand erstellt wurde.

Die Flags sind unveränderlich und können nach der Erstellung der Leinwand nicht mehr geändert werden.

int QCanvasOffscreenCanvas::height() const

Gibt die Höhe dieser Leinwand in Pixeln zurück.

Siehe auch „ width()“ und „ size()“.

bool QCanvasOffscreenCanvas::isNull() const

Gibt „true“ zurück, wenn diese Leinwand gültige Daten enthält.

Normalerweise ist dies immer der Fall.

Siehe auch ` texture()`.

void QCanvasOffscreenCanvas::setFillColor(QColor color)

Legt die Füllfarbe (Hintergrundfarbe) auf „ color “ fest.

Standardmäßig ist dieser Wert auf den an „ createCanvas()“ übergebenen Wert gesetzt.

Siehe auch fillColor().

QSize QCanvasOffscreenCanvas::size() const

Gibt die Größe (Breite und Höhe) dieser Leinwand in Pixeln zurück.

Siehe auch width() und height().

QRhiTexture *QCanvasOffscreenCanvas::texture() const

Gibt die Textur zurück, die diesem Offscreen-Canvas zugrunde liegt.

Siehe auch ` isNull()`.

int QCanvasOffscreenCanvas::width() const

Gibt die Breite dieser Leinwand in Pixeln zurück.

Siehe auch „ height()“ und „ size()“.

QCanvasOffscreenCanvas &QCanvasOffscreenCanvas::operator=(const QCanvasOffscreenCanvas &canvas)

Weist dieser Leinwand eine flache Kopie der angegebenen „ canvas “ zu und gibt einen Verweis auf diese Leinwand zurück. Weitere Informationen zu flachen Kopien finden Sie in der Dokumentation zur impliziten Datenfreigabe.

Hinweis: Die zugrunde liegenden Ressourcen, d. h. die Grafikressourcen wie die „ QRhiTexture “, werden niemals kopiert oder dupliziert.

Verwandte Nicht-Mitglieder

[noexcept] bool operator!=(const QCanvasOffscreenCanvas &lhs, const QCanvasOffscreenCanvas &rhs)

Gibt „ true “ zurück, wenn sich das Canvas-Handle „ lhs “ von „ rhs “ unterscheidet; andernfalls „ false “.

Siehe auch operator==().

[noexcept] bool operator==(const QCanvasOffscreenCanvas &lhs, const QCanvasOffscreenCanvas &rhs)

Gibt „ true “ zurück, wenn das Canvas-Handle „ lhs “ mit „ rhs “ übereinstimmt; andernfalls „ false “.

Hinweis: Gleichheit bedeutet, dass die Füllfarben der beiden Canvas-Objekte identisch sind und sie auf dieselben Grafikressourcen verweisen. Der Inhalt (Pixeldaten) wird nicht verglichen.

Siehe auch „ operator!=()“.

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