QCanvasPainterFactory Class
QCanvasPainterFactory verwaltet Instanzen von QCanvasPainter und die zugehörige Rendering Engine. Mehr...
| Kopfzeile: | #include <QCanvasPainterFactory> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter) |
| Seit: | Qt 6.11 |
| Status: | Technische Vorschau |
Öffentliche Funktionen
| QCanvasPainterFactory() | |
| QCanvasPainter * | create(QRhi *rhi) |
| void | destroy() |
| bool | isValid() const |
| QCanvasRhiPaintDriver * | paintDriver() |
| QCanvasPainter * | painter() |
Statische öffentliche Mitglieder
| QCanvasPainterFactory * | sharedInstance(QRhi *rhi) |
Detaillierte Beschreibung
Anwendungen, die über QCanvasPainter rendern, erstellen selbst keine Instanzen der Painter-Klasse, sondern es wird erwartet, dass sie eine QCanvasPainterFactory verwenden.
Hinweis: Diese Klasse ist nur relevant, wenn mit QCanvasPainter ohne eine Convenience-Klasse wie QCanvasPainterWidget oder QCanvasPainterItem gearbeitet wird, da diese der Anwendung eine QCanvasPainter -Instanz zur Verfügung stellen.
Es folgt ein Beispielcodeausschnitt für das Abrufen einer QCanvasPainter zur Verwendung mit einer vorhandenen, erfolgreich initialisierten QRhi:
std::unique_ptr<QCanvasPainterFactory> factory(new QCanvasPainterFactory); QCanvasPainter *painter = factory->create(rhi); QCanvasRhiPaintDriver *paintDriver = factory->paintDriver();
Allen Zeichnungscodes, die auf demselben Thread mit demselben QRhi arbeiten, wird empfohlen, denselben QCanvasPainter gemeinsam zu nutzen und wiederzuverwenden, anstatt in jeder Komponente einen eigenen Painter (und damit eine eigene Factory) zu haben. Dies kann durch den Aufruf von sharedInstance() erreicht werden, anstatt eine neue QCanvasPainterFactory zu konstruieren:
QCanvasPainterFactory *factory = QCanvasPainterFactory::sharedInstance(rhi); QCanvasPainter *painter = factory->painter(); QCanvasRhiPaintDriver *paintDriver = factory->paintDriver();
Dokumentation der Mitgliedsfunktionen
QCanvasPainterFactory::QCanvasPainterFactory()
Konstrukteur.
Siehe auch sharedInstance().
QCanvasPainter *QCanvasPainterFactory::create(QRhi *rhi)
Initialisiert die Rendering-Infrastruktur von QCanvasPainter, sofern dies nicht bereits für diese Fabrik geschehen ist.
Gibt den Maler zurück oder null, wenn der Renderer nicht initialisiert werden konnte.
Die Fabrik wird mit rhi verknüpft und kann mit keiner anderen QRhi verwendet werden, es sei denn, destroy() und dann create() werden erneut aufgerufen.
Wiederholte Aufrufe dieser Funktion haben keine Auswirkungen und sind harmlos. Rufen Sie destroy() zuerst auf, wenn eine Neuinitialisierung der Maler-Infrastruktur gewünscht wird, möglicherweise mit einer anderen rhi.
Hinweis: Es besteht keine Notwendigkeit, diese Funktion aufzurufen, wenn sharedInstance() verwendet wurde, um eine Fabrikinstanz abzurufen.
Siehe auch destroy(), isValid(), und painter().
void QCanvasPainterFactory::destroy()
Reißt die Rendering-Infrastruktur ab. Normalerweise ist es nicht notwendig, diese Funktion aufzurufen. Vielmehr wird sie in Situationen verwendet, in denen ihr ein create() folgen wird.
Siehe auch create().
bool QCanvasPainterFactory::isValid() const
Gibt true zurück, wenn die Funktion create() erfolgreich aufgerufen wurde.
QCanvasRhiPaintDriver *QCanvasPainterFactory::paintDriver()
Gibt das Farbtreiberobjekt zurück, oder null, wenn isValid() falsch ist.
Hinweis: Das zurückgegebene Objekt ist nicht im Besitz des Aufrufers.
QCanvasPainter *QCanvasPainterFactory::painter()
Gibt den Maler zurück, oder null, wenn isValid() falsch ist.
Hinweis: Das zurückgegebene Objekt ist nicht im Besitz des Aufrufers.
[static] QCanvasPainterFactory *QCanvasPainterFactory::sharedInstance(QRhi *rhi)
Gibt eine QCanvasPainterFactory Instanz zurück, die mit der angegebenen rhi verbunden ist.
Der Aufruf dieser Funktion mit der gleichen rhi wird immer die gleiche QCanvasPainterFactory zurückgeben.
Es besteht keine Notwendigkeit, create() für die zurückgegebene Fabrik aufzurufen, und painter() kann sofort abgefragt werden, da das Ergebnis immer bereits initialisiert ist, was bedeutet, dass isValid() true zurückgibt.
Diese Funktion ist thread-sicher. Allerdings gelten die QRhi Threading-Regeln wie üblich: ein QRhi Objekt und im weiteren Sinne eine Instanz von QCanvasPainterFactory, QCanvasRhiPaintDriver und QCanvasPainter, die mit diesem QRhi verbunden sind, sollten alle in einem einzigen Thread verwendet werden.
Hinweis: Die zurückgegebene QCanvasPainterFactory ist nicht im Besitz des Aufrufers und wird ungültig, wenn rhi zerstört wird.
Siehe auch painter().
© 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.