QCanvasPainterFactory Class
QCanvasPainterFactory verwaltet Instanzen von „ QCanvasPainter “ und die zugehörige Rendering-Engine. Mehr...
| Überschrift: | #include <QCanvasPainterFactory> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS CanvasPainter) target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter) |
| Seit: | Qt 6.11 |
Öffentliche Funktionen
| QCanvasPainterFactory() | |
| QCanvasPainter * | create(QRhi *rhi) |
| void | destroy() |
| bool | isValid() const |
| QCanvasRhiPaintDriver * | paintDriver() |
| QCanvasPainter * | painter() |
Statische öffentliche Mitglieder
| QCanvasPainterFactory * | sharedInstance(QRhi *rhi) |
Ausführliche Beschreibung
Anwendungen, die über „ QCanvasPainter “ rendern, erstellen keine eigenen Instanzen der Painter-Klasse, sondern sollten stattdessen eine `QCanvasPainterFactory` verwenden.
Hinweis: Diese Klasse ist nur relevant, wenn mit „ QCanvasPainter “ ohne eine Komfortklasse wie „ QCanvasPainterWidget “ oder „ QCanvasPainterItem “ gearbeitet wird, da diese der Anwendung eine „ QCanvasPainter “-Instanz bereitstellen.
Im Folgenden finden Sie ein Beispiel-Codeausschnitt zum 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();Für den gesamten Zeichencode, der im selben Thread mit demselben ` QRhi ` ausgeführt wird, wird empfohlen, denselben ` QCanvasPainter` gemeinsam zu nutzen und wiederzuverwenden, anstatt in jeder Komponente einen eigenen Painter (und somit eine eigene Factory) zu verwenden. Dies kann durch den Aufruf von ` sharedInstance()` erreicht werden, anstatt eine neue `QCanvasPainterFactory` zu erstellen:
QCanvasPainterFactory *factory = QCanvasPainterFactory::sharedInstance(rhi);
QCanvasPainter *painter = factory->painter();
QCanvasRhiPaintDriver *paintDriver = factory->paintDriver();Dokumentation der Member-Funktionen
QCanvasPainterFactory::QCanvasPainterFactory()
Konstruktor.
Siehe auch „ sharedInstance()“.
QCanvasPainter *QCanvasPainterFactory::create(QRhi *rhi)
Initialisiert die Rendering-Infrastruktur von „ QCanvasPainter “, sofern dies für diese Factory noch nicht geschehen ist.
Gibt den Painter zurück oder null, falls der Renderer nicht initialisiert werden konnte.
Die Factory wird mit „ rhi “ verknüpft und kann nicht mit einer anderen „ QRhi “ verwendet werden, es sei denn, „ destroy()“ und anschließend „create()“ werden erneut aufgerufen.
Wiederholte Aufrufe dieser Funktion haben keine Auswirkung und sind harmlos. Rufen Sie zunächst ` destroy()` auf, wenn eine Neuinitialisierung der Painter-Infrastruktur gewünscht wird, möglicherweise mit einem anderen ` rhi`.
Hinweis: Es ist nicht erforderlich, diese Funktion aufzurufen, wenn sharedInstance() zum Abrufen einer Factory-Instanz verwendet wurde.
Siehe auch ` destroy()`, ` isValid()` und ` painter()`.
void QCanvasPainterFactory::destroy()
Baut die Rendering-Infrastruktur ab. Normalerweise muss diese Funktion nicht aufgerufen werden. Sie wird vielmehr in Situationen verwendet, in denen anschließend ein Aufruf von ` create()` folgt.
Siehe auch ` create()`.
bool QCanvasPainterFactory::isValid() const
Gibt „true“ zurück, wenn die Funktion „ create()“ erfolgreich aufgerufen wurde.
QCanvasRhiPaintDriver *QCanvasPainterFactory::paintDriver()
Gibt das Paint-Treiberobjekt zurück oder null, wenn „ isValid()“ falsch ist.
Hinweis: Das zurückgegebene Objekt gehört nicht dem Aufrufer.
QCanvasPainter *QCanvasPainterFactory::painter()
Gibt den Painter zurück oder null, wenn „ isValid()“ falsch ist.
Hinweis: Das zurückgegebene Objekt gehört nicht dem Aufrufer.
[static] QCanvasPainterFactory *QCanvasPainterFactory::sharedInstance(QRhi *rhi)
Gibt eine Instanz von ` QCanvasPainterFactory ` zurück, die mit dem angegebenen ` rhi` verknüpft ist.
Wird diese Funktion mit demselben ` rhi ` aufgerufen, wird immer dieselbe ` QCanvasPainterFactory` zurückgegeben.
Es ist nicht erforderlich, ` create()` für die zurückgegebene Factory aufzurufen, und ` painter()` kann sofort abgefragt werden, da das Ergebnis immer bereits initialisiert ist, d. h., ` isValid()` gibt „true“ zurück.
Diese Funktion ist threadsicher. Es gelten jedoch wie üblich die Threading-Regeln von „ QRhi “: Es wird erwartet, dass ein „ QRhi “-Objekt und damit auch alle mit diesem „ QRhi “ verknüpften Instanzen von „ QCanvasPainterFactory “, „ QCanvasRhiPaintDriver “ und „ QCanvasPainter “ ausschließlich in einem einzigen Thread verwendet werden.
Hinweis: Das zurückgegebene ` QCanvasPainterFactory ` gehört nicht dem Aufrufer und wird ungültig, sobald ` 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.