QML vs. XAML und MVVM



  • Hallo zusammen,
    da ich noch bei der Selbstfindung bin, mal wieder eine Frage zu Qt.

    In C# Programmen habe ich gerne XAML und MVVM verwendet:

    Der View war in XAML realisiert, das ViewModel war über public properties mit dem View verbunden. Die Daten hat sich das ViewModel über DataTransferObjects aus einem DataAccesLayer beschafft.

    QML sieht auf den ersten Blick so aus, als würde es in eine ähnliche Richtung gehen, aber in den Beispielen, die ich bisher gefunden habe, wird mehr oder weniger alles in QML gemacht. Irgendwie finde ich da die Trennung zwischen "reinem" Anzeigen und der Businesslogik nicht mehr gegeben.

    Habe ich bisher nur die falschen Beispiele gefunden oder ist die Trennung View(QML) und ViewModel(C++) der falsche Weg (was ich irgendwie schade fände)?

    Danke,
    temi



  • geht wohl beides, vielleicht findest du hier brauchbare infos:

    http://qmlbook.github.io/en/ch15/index.html#models-in-c



  • Ähnlich zu XAML, ist QML die "deklarative View-Sprache" von Qt. Jedoch kommt hinzu, das durch JavaScript auch die gesamte Logik oder Datenverarbeitung vollkommen in QML stattfinden kann.

    Es ist also möglich eine vollständige App NUR mittels QML+JS zu erstellen. Für gewisse Fälle macht es jedoch Sinn C++ zu verwenden. Außerdem ist eine sinnvolle Architektur bei QML-getriebenen apps enorm wichtig um Fehlerquellen zu vermeiden.

    Dieser Guide veranschaulicht die Thematik sehr gut und enthält auch Design Patterns: https://v-play.net/apps/avoid-cpp-models-qt


Log in to reply