Registrierungspflichtiger Artikel

Moderne GUIs mit Model View Adapter in C++ entwickeln

Autor / Redakteur: Tobias Boldte * / Sebastian Gerstl

Grafischer Benutzeroberflächen basieren oft noch auf dem „Model View Controller“-,also MVC-Pattern. Für viele moderne Bibliotheken ist dieser Ansatz inzwischen veraltet. Besser geeignet ist der Model View Adapter, kurz MVA: Er lässt sich gut als Grundlage für das Entwickeln moderner, komplizierterer GUIs mit C++ und Qt verwenden und gewährleistet Wartbarkeit und Erweiterbarkeit.

Firmen zum Thema

Bild 1: Im ursprüngliche Model View Controller Pattern werden Benutzereingaben vom Controller verwaltet: Der Benutzer sieht den Programmzustand auf dem Monitor in der View und gibt über das keyboard Änderungen an den Controller ein. Dieser verändert daraufhin die Daten im Model und es entsteht ein neuer Programmzustand, der wiederum von der View am Monitor angezeigt wird.
Bild 1: Im ursprüngliche Model View Controller Pattern werden Benutzereingaben vom Controller verwaltet: Der Benutzer sieht den Programmzustand auf dem Monitor in der View und gibt über das keyboard Änderungen an den Controller ein. Dieser verändert daraufhin die Daten im Model und es entsteht ein neuer Programmzustand, der wiederum von der View am Monitor angezeigt wird.
(Bild: MixedMode)

Der Einsatz eines Model View-Adapters (MVA) bietet eine universell einsetzbare Lösungsmöglichkeit für die in der Praxis sehr häufig vorkommende Aufgabe, User Interfaces für komplizierte Programmsteuerungen mit vielen Parametern umzusetzen. Die Zahl der Einstellungsoptionen kann dabei zum Beispiel für Maschinensteuerungen (CNC/SPS) oder für Chip-Konfiguratoren sehr umfangreich werden. So benötigen solche Applikationen oftmals Parametersätze mit mehreren tausend Einzeldaten mit unterschiedlichen Datenformaten.

Der durch diese Parametersätze gespeicherte Maschinenzustand soll ohne großen Aufwand in den Ausgangszustand zurückversetzt werden können (Reset). Außerdem soll dieser Zustand durch ein oder mehrere Settings Files verwaltet werden können, jeweils mit einem automatischen Update der GUI-Anzeige für die gewählten Einstellungen. Oft kommt noch die Anforderung hinzu, für unterschiedliche Benutzergruppen unterschiedliche Ansichten desselben Programm- bzw. Maschinenzustands darzustellen.