© Liashko/Shutterstock.com
Entwickler Magazin
Teil 2: Datenhaltung und Integration zu einer lauffähigen Anwendung

Einfache GUIs mit Python und Qt

Im mobilen Zeitalter führt an grafischen Applikationen kein Weg mehr vorbei. Allerdings wird in klassischen, statisch typisierten Programmiersprachen wie C++ relativ viel Code benötigt, um ein GUI zu implementieren. Nicht so mit Python und Qt, wie diese zweiteilige Artikelserie zeigt. Im ersten Teil wurde der Anwendungsfall vorgestellt und die Implementierung der einzelnen GUI-Komponenten erläutert. In Teil 2 beschäftigen wir uns nun mit der Datenhaltung und der Integration der einzelnen Komponenten zu einer lauffähigen Anwendung.

Wolfgang Schmidt


ArtikelserieTeil 1: Entwurf und Implementierung der GUI-ElementeTeil 2: Datenhaltung und Integration zu einer lauffähigen Anwendung

Ein gängiger Weg zur Implementierung ist der Einsatz von IDEs, die den benötigten Code automatisiert erzeugen. Bei diesem Vorgehen nimmt die IDE dem Entwickler viele Aufgaben ab, indem GUI-Elemente in GUI Buildern entworfen und der entsprechende Code automatisch generiert wird. Eine Alternative kann hier die Verwendung einer Kombination einer modernen, dynamisch typisierten Skriptsprache mit einem leistungsfähigen GUI-Toolkit sein.

Im ersten Teil der Artikelserie haben wir den Anwendungsfall vorgestellt und beschrieben, wie die einzelnen für den Anwender sichtbaren Elemente zusammenarbeiten; auch wurden entsprechende Komponenten prototypisch implementiert. Im Folgenden soll nun gezeigt werden, wie Daten gehalten werden und wie man die einzelnen Komponenten dazu bewegt, so zu interagieren, dass eine ausführbare Anwendung entsteht.

Und was ist mit Daten? – Die Datenhaltung

Die klassische Programmierung des letzten Jahrtausends basierte – und das war auch in jedem entsprechenden Lehrbuch zu finden – auf dem EVA-Prinzip: Eingabe-Verarbeitung-Ausgabe. Das heißt, es wurden bei Programmstart eine Menge von Eingabedaten (ursprünglich: Lochkarten) übergeben. Daraufhin erfolgte die Verarbeitung in Form eines beliebig komplizierten Algorithmus, der dann Ausgabedaten – als Bildschirm­ausgabe oder in einer Datei, oder ursprünglich eben auch in Form von Lochkarten – erzeugte. Die Benutzerschnittstelle trat hier nicht besonders prominent in den Vordergrund. Der wesentliche Teil des Programms war die Verarbeitung. Es gab letztendlich einen Weg durch das Programm, der vom Anwender (damals meistens = Programmierer) nicht verändert werden konnte.

In einer GUI-basierten Anwendung stellt sich die Situation anders dar. Es gibt im Allgemeinen keine klar getrennten Phasen von Eingabe, Verarbeitung und Ausgabe. Im Mittelpunkt steht die Benutzerschnittstelle, die dem Anwender erlaubt, beliebige Aktionen anzustoßen. Eine GUI-Anwendung entspricht eher einer Endlosschleife in vereinfachtem Python-Pseudocode:

while True: user_input = get_user_input() handle_user_input(user_input)

Trotzdem gibt es auch bei GUI-basierten Anwendungen natürlich Eingangsdaten und Ausgangsdaten. In unserem Fall werden entsprechend die Eingangsdaten den Quizfragen und den Eingaben des Teilnehmers, die Ausgangsdaten den Ergebnissen, wie sie einerseits in der Ergebnisanzeige ausgegeb...

Entwickler Magazin
Teil 2: Datenhaltung und Integration zu einer lauffähigen Anwendung

Einfache GUIs mit Python und Qt

Im mobilen Zeitalter führt an grafischen Applikationen kein Weg mehr vorbei. Allerdings wird in klassischen, statisch typisierten Programmiersprachen wie C++ relativ viel Code benötigt, um ein GUI zu implementieren. Nicht so mit Python und Qt, wie diese zweiteilige Artikelserie zeigt. Im ersten Teil wurde der Anwendungsfall vorgestellt und die Implementierung der einzelnen GUI-Komponenten erläutert. In Teil 2 beschäftigen wir uns nun mit der Datenhaltung und der Integration der einzelnen Komponenten zu einer lauffähigen Anwendung.

Wolfgang Schmidt


ArtikelserieTeil 1: Entwurf und Implementierung der GUI-ElementeTeil 2: Datenhaltung und Integration zu einer lauffähigen Anwendung

Ein gängiger Weg zur Implementierung ist der Einsatz von IDEs, die den benötigten Code automatisiert erzeugen. Bei diesem Vorgehen nimmt die IDE dem Entwickler viele Aufgaben ab, indem GUI-Elemente in GUI Buildern entworfen und der entsprechende Code automatisch generiert wird. Eine Alternative kann hier die Verwendung einer Kombination einer modernen, dynamisch typisierten Skriptsprache mit einem leistungsfähigen GUI-Toolkit sein.

Im ersten Teil der Artikelserie haben wir den Anwendungsfall vorgestellt und beschrieben, wie die einzelnen für den Anwender sichtbaren Elemente zusammenarbeiten; auch wurden entsprechende Komponenten prototypisch implementiert. Im Folgenden soll nun gezeigt werden, wie Daten gehalten werden und wie man die einzelnen Komponenten dazu bewegt, so zu interagieren, dass eine ausführbare Anwendung entsteht.

Und was ist mit Daten? – Die Datenhaltung

Die klassische Programmierung des letzten Jahrtausends basierte – und das war auch in jedem entsprechenden Lehrbuch zu finden – auf dem EVA-Prinzip: Eingabe-Verarbeitung-Ausgabe. Das heißt, es wurden bei Programmstart eine Menge von Eingabedaten (ursprünglich: Lochkarten) übergeben. Daraufhin erfolgte die Verarbeitung in Form eines beliebig komplizierten Algorithmus, der dann Ausgabedaten – als Bildschirm­ausgabe oder in einer Datei, oder ursprünglich eben auch in Form von Lochkarten – erzeugte. Die Benutzerschnittstelle trat hier nicht besonders prominent in den Vordergrund. Der wesentliche Teil des Programms war die Verarbeitung. Es gab letztendlich einen Weg durch das Programm, der vom Anwender (damals meistens = Programmierer) nicht verändert werden konnte.

In einer GUI-basierten Anwendung stellt sich die Situation anders dar. Es gibt im Allgemeinen keine klar getrennten Phasen von Eingabe, Verarbeitung und Ausgabe. Im Mittelpunkt steht die Benutzerschnittstelle, die dem Anwender erlaubt, beliebige Aktionen anzustoßen. Eine GUI-Anwendung entspricht eher einer Endlosschleife in vereinfachtem Python-Pseudocode:

while True: user_input = get_user_input() handle_user_input(user_input)

Trotzdem gibt es auch bei GUI-basierten Anwendungen natürlich Eingangsdaten und Ausgangsdaten. In unserem Fall werden entsprechend die Eingangsdaten den Quizfragen und den Eingaben des Teilnehmers, die Ausgangsdaten den Ergebnissen, wie sie einerseits in der Ergebnisanzeige ausgegeb...

Neugierig geworden?


   
Loading...

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