Auf dieser Seite

QCanvasPainterItem Class

Die Klasse QCanvasPainterItem bietet eine Möglichkeit, die Qt Canvas Painter API im QML Scene Graph zu verwenden. Mehr...

Kopfzeile: #include <QCanvasPainterItem>
CMake: find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)
target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter)
Seit: Qt 6.11
Erbt: QQuickRhiItem
Status: Technische Vorschau

Eigenschaften

Öffentliche Funktionen

QCanvasPainterItem(QQuickItem *parent = nullptr)
virtual ~QCanvasPainterItem() override
QColor fillColor() const
void setFillColor(const QColor &color)

Signale

Geschützte Funktionen

virtual QCanvasPainterItemRenderer *createItemRenderer() const = 0

Reimplementierte geschützte Funktionen

virtual QQuickRhiItemRenderer *createRenderer() override

Detaillierte Beschreibung

Um ein eigenes bemaltes Element zu erstellen, erstellen Sie zunächst eine Unterklasse von QCanvasPainterItem und beginnen dann mit der Implementierung ihrer einzigen rein virtuellen öffentlichen Funktion: createItemRenderer(), die ein Objekt zurückgibt, das das eigentliche Malen durchführt.

Der folgende Codeschnipsel zeigt die typische Struktur einer QCanvasPainterItem-Unterklasse. Siehe QCanvasPainterItemRenderer für ein Beispiel der Klasse MyRenderer.

class MyItem : public QCanvasPainterItem
{
    Q_OBJECT
    QML_NAMED_ELEMENT(MyItem) // exposed to QML, instantiate as MyItem { ... }

    // a custom property
    Q_PROPERTY(float value READ value WRITE setValue NOTIFY valueChanged)

public:
    HelloItem(QQuickItem *parent = nullptr)
        : QCanvasPainterItem(parent)
    {
    }

    QCanvasPainterItemRenderer *createItemRenderer() const override
    {
        return new MyRenderer;
    }

    float value() const { return m_value; }
    void setValue(float newValue)
    {
        if (m_value != newValue) {
            m_value = newValue;
            emit valueChanged();
        }
    }
    float m_value = 0.0f;
};

Siehe auch QCanvasPainterItemRenderer.

Dokumentation der Eigenschaften

[read-only] debug : QVariantMap

Enthält eine Schlüssel-Wert-Zuordnung von Rendering-Statistiken. Die Daten werden nur erfasst, wenn die Umgebungsvariable QCPAINTER_DEBUG_COLLECT auf einen Wert ungleich Null gesetzt ist.

Die Daten werden in regelmäßigen Abständen aktualisiert, nicht jedes Mal, wenn das Element neu gezeichnet wird. Das Intervall beträgt derzeit eine Sekunde. Daher werden sich die empfangenen Daten in vielen Fällen auf eine frühere Zeichnung des Objekts beziehen. Dies ist in der Regel kein Problem, wenn die Statistiken interaktiv angezeigt werden, aber es ist wichtig, sich dessen bewusst zu sein.

Um die Daten innerhalb des Artikels automatisch als Overlay anzuzeigen, setzen Sie stattdessen die Umgebungsvariable QCPAINTER_DEBUG_RENDER. Dies bietet eine bequeme Abkürzung, wenn die Werte ohnehin auf dem Bildschirm angezeigt werden sollen.

Die Liste der Schlüssel ist derzeit die folgende:

  • fillDrawCallCount
  • strokeDrawCallCount
  • textZeichnenAufrufZahl
  • fillTriangleCount
  • strokeTriangleCount
  • textTriangleCount
  • drawCallCount
  • triangleCount

Melder-Signal:

void debugChanged()

fillColor : QColor

Diese Eigenschaft enthält die Farbe, die für die Füllung des Elements, d. h. den Elementhintergrund, verwendet wird.

Die Standardfarbe ist Schwarz.

Zugriffsfunktionen:

QColor fillColor() const
void setFillColor(const QColor &color)

Benachrichtigungssignal:

void fillColorChanged()

Member Function Dokumentation

QCanvasPainterItem::QCanvasPainterItem(QQuickItem *parent = nullptr)

Konstruiert ein QCanvasPainterItem mit dem angegebenen parent item.

[override virtual noexcept] QCanvasPainterItem::~QCanvasPainterItem()

Zerstört die QCanvasPainterItem.

[pure virtual protected] QCanvasPainterItemRenderer *QCanvasPainterItem::createItemRenderer() const

Implementieren Sie diese Methode, um einen Painter für dieses Element (neu) zu erstellen. Die Painter-Klasse sollte von QCanvasPainterItemRenderer geerbt werden. QCanvasPainterItem übernimmt das Eigentum an dem erstellten Objekt und löscht es bei Bedarf.

Beispielcode:

QCanvasPainterItemRenderer* MyItem::createItemRenderer() const { return new MyItemPainter(); }

[override virtual protected] QQuickRhiItemRenderer *QCanvasPainterItem::createRenderer()

Reimplements: QQuickRhiItem::createRenderer().

QColor QCanvasPainterItem::fillColor() const

Gibt die aktuelle Füllfarbe zurück.

Hinweis: Getter-Funktion für die Eigenschaft fillColor.

Siehe auch setFillColor().

void QCanvasPainterItem::setFillColor(const QColor &color)

Setzen Sie die Füllfarbe auf color. Diese Farbe wird verwendet, um den Hintergrund des Elements zu zeichnen. Die Standardfarbe ist Schwarz.

Hinweis: Wenn Sie die Füllfarbe nicht vollständig deckend einstellen (Alphakanal kleiner als 255), müssen Sie auch alphaBlending auf true einstellen.

Hinweis: Setter-Funktion für die Eigenschaft fillColor.

Siehe auch fillColor() und QQuickRhiItem::alphaBlending.

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