433
Kapitel 15
Grafische Benutzungsoberflächen
mit tkinter
Ein interaktives Programm ermöglicht die Kommunikation zwischen Mensch und Compu-
ter über eine Benutzungsoberfläche. In den Programmen, die bisher in diesem Buch
beschrieben wurden, hat die Benutzungsoberfläche zwei Merkmale:
Die Kommunikation ist textbasiert. Es gibt ein interaktives Konsolenfenster (Shell-Fens-
ter, Eingabeaufforderung), das vom Betriebssystem oder der Entwicklungsumgebung
bereitgestellt wird. Darin gibt das Programm Texte aus oder der Benutzer schreibt über
die Tastatur eine Eingabe hinein.
Die Kommunikation ist synchronisiert. Es findet ein geregelter Dialog zwischen Mensch
und Maschine statt. Die zeitliche Abfolge von Eingaben und Ausgaben ist genau festgelegt
und vorhersehbar. Bei der Ausführung einer
input()-Anweisung wartet das Programm,
bis der Benutzer eine Zeichenfolge eingegeben und die
(Enter)-Taste betätigt hat.
Wie Sie wissen, arbeiten die meisten modernen Software-Systeme anders. Textverarbei-
tungsprogramme, der IDLE-Editor und andere Software, mit der man im Alltag zu tun hat,
besitzen eine grafische Benutzungsoberfläche. Im Englischen spricht man von Graphical
User Interface oder kurz GUI. Ein solches System hat folgende Merkmale:
Die Kommunikation ist multimedial. Der Benutzer sieht die »Oberfläche« des Programms
– die Schnittstelle zwischen Mensch und Maschine – als grafisch gestaltetes Fenster. Es
enthält eine Vielzahl unterschiedlicher Komponenten wie Texte mit Zeichen in verschie-
denen Farben, Größen und Schrifttypen, Eingabefelder, Schaltflächen und Abbildungen,
die zum Teil sogar animiert sind. Eingaben macht man nicht nur über die Tastatur, son-
dern auch mit der Maus. Sie dient beispielsweise zum Anklicken von Schaltflächen und
Bewegen von virtuellen Reglern auf dem Bildschirm.
Die Kommunikation verläuft asynchron. Anstatt einem vorgegebenen Dialog zu folgen,
hat der Benutzer die Freiheit, zu beliebigen Zeitpunkten etwas zu tun. Der Verlauf der
Kommunikation ist unvorhersehbar. Gerade so, wie es einem in den Sinn kommt, kann
man Fenster verschieben, Objekte anklicken oder Text eingeben. Jede Benutzeraktion
bezeichnet man als asynchrones Ereignis (Event), auf das das System auf bestimmte
Weise reagiert. Der Klick auf einen Button löst immer sofort ein definiertes Systemver-
halten aus, ganz gleich, wann er erfolgt.
In diesem Kapitel geht es um die Programmierung von grafischen Benutzungsoberflächen
mit dem Python-Modul tkinter. Wir orientieren uns an den drei Aufgaben, die bei einer
GUI-Entwicklung zu bewältigen sind:
Zunächst müssen grafische Elemente wie Abbildungen, Eingabefelder, Schaltflächen etc.
definiert werden. Diese »Bausteine«, aus denen eine grafische Benutzungsoberfläche
zusammengesetzt ist, heißen Widgets (window gadgets).

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.