QCustomSeriesCanvasRenderer Class
Die Klasse „QCustomSeriesCanvasRenderer“ ermöglicht die Implementierung einer benutzerdefinierten Darstellung für eine „ QCustomSeries “, wenn das leistungsstarke Canvas-Painter-Backend verwendet wird. Mehr...
| Header: | #include <QCustomSeriesCanvasRenderer> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Graphs) target_link_libraries(mytarget PRIVATE Qt6::Graphs) |
| qmake: | QT += graphs |
| Seit: | Qt 6.12 |
Öffentliche Funktionen
| QCustomSeriesCanvasRenderer() | |
| virtual void | canvasPrePaint(QCanvasPainter *p) |
| virtual void | initializeResources(QCustomSeries *series, QCanvasPainter *p) |
| virtual void | synchronizeData(QCustomSeries *series, QCanvasPainterItem *item) |
Ausführliche Beschreibung
Implementieren Sie `canvasPaint()`, um ein ` QCustomSeries` zu zeichnen. Legen Sie den Renderer für die Serie mit ` QCustomSeries::setCustomSeriesPainter()` fest, den die Serie dann über `QCustomSeries::customSeriesPainter()` bereitstellt.
canvasPaint() und canvasPrePaint() werden vom Render-Thread desQt Quick -Szenengraphen aufgerufen und erhalten – im Gegensatz zu initializeResources() und synchronizeData() – nicht den QCustomSeries, zu dem sie gehören. Kopieren Sie alles, was canvasPaint() benötigt, in die Renderer-Instanz in synchronizeData(), das ausgeführt wird, während der GUI-Thread blockiert ist, und an dem es als einziger Ort sicher ist, Daten des GUI-Threads zu lesen.
Siehe auch „ QCustomSeries “ und „ QCustomSeries::setCustomSeriesPainter()“.
Dokumentation zu Mitgliedsfunktionen
[constexpr noexcept default] QCustomSeriesCanvasRenderer::QCustomSeriesCanvasRenderer()
Erstellt standardmäßig eine Instanz von ` QCustomSeriesCanvasRenderer`.
[virtual] void QCustomSeriesCanvasRenderer::canvasPrePaint(QCanvasPainter *p)
Implementieren Sie diese Methode neu, um die Darstellung mithilfe von ` p` vorzubereiten, basierend auf dem zuvor durch ` synchronizeData()` in diese Instanz kopierten Zustand. Diese Methode wird unmittelbar vor dem Aufruf von `canvasPaint()` für dieselbe Instanz vom Render-Thread aus aufgerufen; greifen Sie hier nicht auf den Zustand von Serien oder Elementen zu.
Siehe auch canvasPaint ().
[virtual] void QCustomSeriesCanvasRenderer::initializeResources(QCustomSeries *series, QCanvasPainter *p)
Implementieren Sie diese Methode neu, um Ressourcen für ` series ` mithilfe von ` p` zu initialisieren. Diese Methode wird einmal vor dem ersten Aufruf von ` synchronizeData()` für ` series` aufgerufen.
Siehe auch QCanvasPainter ::addImage und QCanvasPainter::createCanvas.
[virtual] void QCustomSeriesCanvasRenderer::synchronizeData(QCustomSeries *series, QCanvasPainterItem *item)
Implementieren Sie diese Methode neu, um die für die Darstellung von „ series “ benötigten Daten aus „ item “ in diese Renderer-Instanz zu kopieren. Diese Methode wird vor „canvasPaint()“ aufgerufen, sobald „ series “ neu gezeichnet werden muss.
Diese Methode ist die einzige Stelle, an der es sicher ist, den GUI-eigenen Zustand von series oder item direkt auszulesen, da sie ausgeführt wird, während der GUI-Thread am Synchronisationspunkt von Qt Quick blockiert ist. Greifen Sie nicht von canvasPaint() oder canvasPrePaint() auf diesen Zustand zu.
© 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.