© best_vector/Shutterstock.com
Teil 6: Fortgeschrittene Module des Frameworks verwenden

Qt verwaltet Daten


Qt-Applikationen beschränken sich nicht auf das Anzeigen von Daten. Das Framework bietet Entwicklern eine Vielzahl von Hilfsklassen an, die ihre Arbeit im Backend erledigen und sich um Parsing, Netzwerkkommunikation oder Datenpräsentation kümmern.

Artikelserie

Teil 1: Nativ aussehende Cross-Plattform-Apps mit Qt erzeugen

Teil 2: Auflösungsunabhängig programmieren

Teil 3: GUI mit Qt

Teil 4: Ratenzahlung mit dem Q

Teil 5: Auch abseits von Windows gibt es Leben

Teil 6: Fortgeschrittene Module des Frameworks verwenden

Aus der Logik folgt, dass eine Komplettbesprechung des Themas an dieser Stelle nicht möglich ist – der Autor verfasste vor einigen Jahren ein rund 300 Seiten umfassendes Lehrbuch, das auch nur an der Oberfläche kratzen konnte. Wir wollen unsere Ausführungen hier am Datenmodell-API ausrichten. Dahinter steckt der Gedanke, dass Qt Entwickler nicht dazu zwingt, alle am Bildschirm sichtbaren Elemente in den Steuerelementen unterzubringen. Stattdessen ist es auch erlaubt, analog zum Modell-View-Controller-Pattern, Informationen im Hintergrund zu halten und die Visualisierung ans Framework abzutreten.

Eine Frage des Steuerelements

MVC-Applikationen lassen sich in Qt sowohl mittels QtGUI als auch mittels QML entwerfen. Wir wollen in den folgenden Schritten – schon aus Gründen der Bequemlichkeit – auf den klassischen QtGUI-Stack setzen. Deshalb erzeugen wir eine neue Applikation auf Basis der Vorlage Application | Qt Widgets Application. Öffnen Sie danach die .ui-Datei, um den WYSIWYG-Editor zu aktivieren. Die für die Darstellung von Informationen zuständigen Steuerelemente präsentieren sich dann wie in Abbildung 1.

hanna_qt_teil6_1.tif_fmt1.jpgAbb. 1: Datengetriebene Steuerelemente stehen in zwei Variationen zur Verfügung

Die mit dem Suffix Item-Based ausgestatteten Widgets bringen dabei die Logik, die für das Vorhalten der Informationen notwendig ist, mit. Elemente der Art Model-Based erwarten stattdessen die Bereitstellung eines „externen“ Datenmodells, das der Entwickler natürlich auch an anderer Stelle in seiner Applikation weiterverwenden darf.

Zur Demonstration der Mächtigkeit dieses Features wollen wir uns anfangs eine TreeView greifen, die sie wie gewohnt im Formular platzieren und maximieren. Wechseln Sie danach in den Code-behind und platzieren Sie im Konstruktor den Code aus Listing 1.

Listing 1

# include <QFileSystemModel> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QFileSystemModel* myModel=new QFileSys...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang