QCanvasPainterItem Class
Die Klasse `QCanvasPainterItem` bietet die Möglichkeit, die Qt-Canvas-Painter-API im QML-Szenenbaum zu nutzen. Mehr...
| Header: | #include <QCanvasPainterItem> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS CanvasPainter) target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter) |
| Seit: | Qt 6.11 |
| Erbt von: | QQuickRhiItem |
Eigenschaften
Öffentliche Funktionen
| QCanvasPainterItem(QQuickItem *parent = nullptr) | |
| virtual | ~QCanvasPainterItem() override |
| QColor | fillColor() const |
| void | setFillColor(QColor color) |
Signale
| void | debugChanged() |
| void | fillColorChanged() |
Geschützte Funktionen
| virtual QCanvasPainterItemRenderer * | createItemRenderer() const = 0 |
Neu implementierte geschützte Funktionen
| virtual QQuickRhiItemRenderer * | createRenderer() override |
| virtual bool | event(QEvent *event) override |
Ausführliche Beschreibung
Um ein eigenes Zeichenelement zu erstellen, erstellen Sie zunächst eine Unterklasse von `QCanvasPainterItem` und implementieren dann zunächst deren einzige rein virtuelle öffentliche Funktion: ` createItemRenderer()`, die ein Objekt zurückgibt, das das eigentliche Zeichnen durchführt.
Der folgende Codeausschnitt zeigt die typische Struktur einer QCanvasPainterItem-Unterklasse. Ein Beispiel für die Klasse „ MyRenderer “ finden Sie unter „ QCanvasPainterItemRenderer “.
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:
MyItem(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();
}
}
signals:
void valueChanged();
private:
float m_value = 0.0f;
};Mithilfe der Eigenschaft „ QtQuick::Item::antialiasing “ lässt sich das Antialiasing deaktivieren. Der Standardwert ist „ true “. Wird dieser Wert auf „ false “ gesetzt, wird das Antialiasing deaktiviert, selbst wenn der Zeichen-Code „ QCanvasPainter::setAntialias()“ mit einem Wert größer als „ 0 “ aufruft. Das Deaktivieren des Antialiasings kann zu einer Leistungssteigerung führen.
Siehe auch QCanvasPainterItemRenderer.
Dokumentation zu den Eigenschaften
[read-only] debug : QVariantMap
Enthält eine Schlüssel-Wert-Zuordnung mit Darstellungsstatistiken. 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 bei jeder Neuzeichnung des Elements. Das Intervall beträgt derzeit eine Sekunde. Daher beziehen sich die empfangenen Daten in vielen Fällen auf eine frühere Zeichnung des Elements. Dies stellt bei der interaktiven Anzeige der Statistiken in der Regel kein Problem dar, sollte jedoch beachtet werden.
Um die Daten automatisch innerhalb des Elements in Form einer Überlagerung anzuzeigen, setzen Sie stattdessen die Umgebungsvariable ` QCPAINTER_DEBUG_RENDER `. Dies bietet eine praktische Abkürzung, wenn ohnehin beabsichtigt ist, die Werte auf dem Bildschirm anzuzeigen.
Die Liste der Schlüssel lautet derzeit wie folgt:
- fillDrawCallCount
- strokeDrawCallCount
- textDrawCallCount
- fillTriangleCount
- strokeTriangleCount
- textTriangleCount
- Zeichnungsaufrufanzahl
- Dreieck-Zählung
- Bildspeicherverbrauch
- Bildanzahl
- Anzahl der Pfadgruppen
- Anzahl zwischengespeicherter Teilpfade
- Größe der zwischengespeicherten Pfad-Vertex-Daten
Notifier-Signal:
| void | debugChanged() |
fillColor : QColor
Diese Eigenschaft legt die Farbe fest, die zum Ausfüllen des Elements verwendet werden soll, d. h. den Hintergrund des Elements.
Die Standardfarbe ist Schwarz.
Zugriffsfunktionen:
| QColor | fillColor() const |
| void | setFillColor(QColor color) |
Notifier-Signal:
| void | fillColorChanged() |
Dokumentation der Member-Funktionen
[explicit] QCanvasPainterItem::QCanvasPainterItem(QQuickItem *parent = nullptr)
Erstellt ein `QCanvasPainterItem` mit dem angegebenen ` parent `-Element.
[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` abgeleitet sein. ` QCanvasPainterItem ` übernimmt die Verantwortung für das erstellte Objekt und löscht es bei Bedarf.
Beispielcode:
QCanvasPainterItemRenderer* MyItem::createItemRenderer() const { return new MyItemPainter(); }
[override virtual protected] QQuickRhiItemRenderer *QCanvasPainterItem::createRenderer()
Implementiert: QQuickRhiItem::createRenderer().
[override virtual protected] bool QCanvasPainterItem::event(QEvent *event)
Implementiert: ` QQuickRhiItem::event(QEvent *e)`.
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(QColor color)
Stellen Sie die Füllfarbe auf „ color “ ein. Diese Farbe wird zum Zeichnen des Hintergrunds des Elements verwendet. Die Standardfarbe ist Schwarz.
Hinweis: Wenn Sie die Füllfarbe so einstellen, dass sie nicht vollständig deckend ist (Alpha-Kanal kleiner als 255), denken Sie daran, auch „ alphaBlending “ auf „ true “ zu setzen.
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.