En esta página

QCanvasPainterItem Class

La clase QCanvasPainterItem proporciona una forma de utilizar la API Qt Canvas Painter en el gráfico de escena QML. Más...

Cabecera: #include <QCanvasPainterItem>
CMake: find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)
target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter)
Desde: Qt 6.11
Hereda de: QQuickRhiItem
Estado: Technical Preview

Propiedades

Funciones públicas

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

Señales

Funciones protegidas

virtual QCanvasPainterItemRenderer *createItemRenderer() const = 0

Funciones protegidas reimplementadas

virtual QQuickRhiItemRenderer *createRenderer() override

Descripción Detallada

Para escribir tu propio item pintado, primero debes crear una subclase de QCanvasPainterItem, y luego comenzar implementando su única función pública virtual pura: createItemRenderer(), que devuelve un objeto que realiza la pintura.

El siguiente fragmento de código muestra la estructura típica de una subclase QCanvasPainterItem. Ver QCanvasPainterItemRenderer para un ejemplo de la clase 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;
};

Ver también QCanvasPainterItemRenderer.

Documentación de Propiedades

[read-only] debug : QVariantMap

Contiene un mapa clave-valor de estadísticas de renderizado. Los datos sólo se recogen cuando la variable de entorno QCPAINTER_DEBUG_COLLECT tiene un valor distinto de cero.

Los datos se actualizan periódicamente, no cada vez que se repinta el elemento. El intervalo es actualmente de un segundo. Por lo tanto, los datos recibidos se referirán en muchos casos a un dibujo anterior del elemento. Esto no suele ser un problema cuando se muestran las estadísticas de forma interactiva, pero es importante tenerlo en cuenta.

Para mostrar automáticamente los datos dentro del elemento en forma de superposición, establezca en su lugar la variable de entorno QCPAINTER_DEBUG_RENDER. Esto proporciona un atajo conveniente cuando la intención es de todos modos mostrar los valores en pantalla.

La lista de teclas es actualmente la siguiente

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

Señal del notificador:

void debugChanged()

fillColor : QColor

Esta propiedad contiene el color a utilizar para rellenar el elemento, es decir, el fondo del elemento.

El color por defecto es el negro.

Funciones de acceso:

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

Señal del notificador:

void fillColorChanged()

Documentación de funciones miembro

QCanvasPainterItem::QCanvasPainterItem(QQuickItem *parent = nullptr)

Construye un QCanvasPainterItem con el item parent dado.

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

Destruye el QCanvasPainterItem.

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

Implementa este método para (re)crear un pintor para este elemento. La clase del pintor debe heredarse de QCanvasPainterItemRenderer. QCanvasPainterItem toma la propiedad del objeto creado y lo borra cuando es necesario.

Código de ejemplo:

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

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

Reimplementa: QQuickRhiItem::createRenderer().

QColor QCanvasPainterItem::fillColor() const

Devuelve el color de relleno actual.

Nota: Función Getter para la propiedad fillColor.

Véase también setFillColor().

void QCanvasPainterItem::setFillColor(const QColor &color)

Establezca el color de relleno en color. Este color se utilizará para dibujar el fondo del elemento. El color por defecto es el negro.

Nota: Si el color de relleno no es totalmente opaco (canal alfa inferior a 255), recuerde establecer también alphaBlending a true.

Nota: Función Setter para la propiedad fillColor.

Ver también fillColor() y 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.