QCanvasPainterItem Class
The QCanvasPainterItem class provides a way to use the Qt Canvas Painter API in the QML Scene Graph. More...
| Header: | #include <QCanvasPainterItem> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter) |
| Since: | Qt 6.11 |
| Status: | Technical Preview |
Protected Functions
| virtual QCanvasPainterItemRenderer * | createItemRenderer() const = 0 |
| int * | createRenderer() |
Detailed Description
To write your own painted item, you first create a subclass of QCanvasPainterItem, and then start by implementing its only pure virtual public function: createItemRenderer(), which returns an object that performs the actual painting.
The below code snippet shows the typical structure of a QCanvasPainterItem subclass. See QCanvasPainterItemRenderer for an example of the MyRenderer class.
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; };
See also QCanvasPainterItemRenderer.
Member Function Documentation
[pure virtual protected] QCanvasPainterItemRenderer *QCanvasPainterItem::createItemRenderer() const
Implement this method to (re)create a painter for this item. The painter class should be inherited from QCanvasPainterItemRenderer. QCanvasPainterItem takes the ownership of the created object and deletes it when needed.
Example code:
QCanvasPainterItemRenderer* MyItem::createItemRenderer() const { return new MyItemPainter(); }