Um es einfach zu halten würde ich in QML schreiben. Dann schreibst du sowas:
https://doc.qt.io/archives/qt-5.5/qt...ircle-qml.html

Wenn du es hart willst:
QPainter ist ein Cpp-QObject. Willst du das in QML einbinden, solltest du das hier gelesen haben:
qml-cpp integration
Du müsstest eine Klasse vom QWidget ableiten, mit Q_PROPERTYs zur Steuerung versehen, den Zeichnen-Code in der Write/Setter-Methode triggern und als QML_ELEMENT markieren.
Das kannst du dann im QML-Code verwenden.

Viel Erfolg!