The QML engine (in both Qt4 and Qt5) can essentially create instances of any class that is derived from QObject (directly or indirectly).

So for example if you have a class that derives from QGraphicsObject you should be able to register that with the QML engine's type system and then use in QML like any of the "built-in" types.

http://doc.qt.io/archives/qt-4.8/qde...mlRegisterType
http://doc.qt.io/qt-5/qqmlengine.html#qmlRegisterType

Cheers,
_