import QtQuick 2.0 Item { id: root property QtObject obj: { console.log('set obj'); return objPrototype.createObject(root) } property int val: { console.log('set val'); return 42 } Component.onCompleted: console.log('Constructed Object') onValChanged: console.log('val changed') onObjChanged: console.log('obj changed') TestObj1 { id: to1 paps: root } Component { id: objPrototype QtObject { id: op Component.onCompleted: console.log('PropertyObject created', op) } } }