MVP pattern example with QML and Widget view