© Mikado767/Shutterstock.com
Grafische Benutzeroberflächen mit Python - ein Einstieg und Überblick

Oberflächliches im Vordergrund


Python gilt als leistungsfähige Programmiersprache für Algorithmen und zum Lösen von wissenschaftlichen, mathematischen und datenorientierten Problemen. Es ist jedoch auch möglich, damit Programme mit grafischen Benutzeroberflächen zu erstellen. Bevorzugt werden plattformübergreifende Toolkits verwendet.

Python ist eine moderne Programmiersprache, die bevorzugt im Hintergrund eingesetzt wird. Leistungsfähige Funktionen und Bibliotheken aus dem Bereich der Mathematik oder zur Datenverarbeitung erleichtern es, auch komplexe Algorithmen zu formulieren. Gerade für Anwendungen der künstlichen Intelligenz oder für die Auswertung von umfassenden Datenbeständen hat sich Python bewährt. Viele Programme benötigen jedoch auch eine grafische Benutzeroberfläche für die Interaktion mit dem Anwender. Hier hat man grundsätzlich zwei Optionen:

  1. Fremdes User Interface: Die Benutzeroberfläche wird durch ein eigenständiges Programm realisiert. Dabei wird eine Grafikbibliothek oder ein Framework genutzt, mit dem sich die Anforderungen an die Oberfläche in der gewünschten Form realisieren lassen. Das Python-Programm stellt dabei der Software seine Dienste in Form einer Bibliothek zur Verfügung. Bei der Wahl der Technologie zur grafischen Benutzeroberfläche ist man nicht eingeschränkt und kann das System seiner Wahl verwenden. Je nachdem, auf welchem Betriebssystem die Software ausgeführt werden soll, kann man eine systemspezifische Lösung oder einen plattformübergreifenden Ansatz wählen. Diese Vorgehensweise scheint das Mittel der Wahl zu sein, wenn es sich um umfangreiche oder komplexe Oberflächen handelt.

  2. Eigenes User Interface: Die Benutzeroberfläche wird ebenso wie die anderen Programmteile in Python programmiert. Dazu setzt man ein sogenanntes Toolkit ein und interagiert direkt aus dem Python-Programm mit ihm. Python bietet dem Programmierer unterschiedliche Toolkits.

In diesem Artikel geht es um das Erstellen von grafischen Benutzeroberflächen mit Python. Dabei stellen wir zunächst einige gängige Toolkits vor und zeigen dann die grundsätzliche Vorgehensweise mit der Sprachanbindung Tkinter.

Überblick über Toolkits und Bindings an Python

Für die Programmierung von grafischen Benutzeroberflächen mit Python hat man die Qual der Wahl. Eine Übersicht gebräuchlicher Toolkits:

  • Tkinter [1]: Es handelt sich um das Standard Interface für grafische Oberflächen, die mit Python erstellt werden. Es bindet das Toolkit Tk, das ursprünglich für die Sprache Tcl (Tool Command Language) entwickelt wurde. Tkinter ist direkt in der Standardbibliothek von Python enthalten. Das erlaubt das Erstellen von kleineren grafischen Benutzeroberflächen, ohne eine zusätzliche Bibliothek installieren, referenzieren und nutzen zu müssen. Wir gehen im kommenden Abschnitt genauer auf Tkinter ein.

  • PyQt [2]: Angebunden wird das Toolkit Qt, das die Basis der Desktopumgebung KDE (K Desktop Environment) ist. Qt steht jedoch auch plattformübergreifend zur Verfügung und kann für freie Software kostenfrei verwendet werden. Für eine kommerzielle Nutzung von Qt fallen Lizenzgebühren an. Qt ist in der Programmiersprache C++ entwickelt.

  • PyGObject [3]: In diesem Fall wird das Grafiktoolkit GTK verwendet. GTK (GIMP-Toolkit) wurde ursprünglich für das Grafikprogramm GIMP entwickelt. Es handelt sich ebenfalls um ein plattformübergreifendes Framework, das häufig für grafische Benutzeroberflächen eingesetzt wird. Das GTK ist Basis der Desktopumgebung GNOME. Es ist in C programmiert und kann dennoch objektorientiert verwendet werden.

  • wxPython [4]: Hier wird mit dem plattformübergreifenden Grafik-Framework wxWidgets gearbeitet. Das Ziel von wxWidgets ist es, die Besonderheiten der jeweiligen Zielplattform möglichst gut abzubilden. Dazu zeichnet es die Controls nicht selbst, sondern verwendet die APIs der Zielsysteme.

Das war nur eine kleine Auflistung der Möglichkeiten, grafische Oberflächen mit Python als Programmiersprache zu erstellen. Wenn Sie im Internet nach dieser Aufgabe suchen, werden Sie noch unzählige Bibliotheken finden, die mit den unterschiedlichsten Grafik-Frameworks zusammenarbeiten. Eine umfassende Auflistung finden Sie zum Beispiel unter [5]. Dort wird nach den Zielsystemen unterteilt, d. h. für Browser (Webapplikationen), Cross-Plattform (für mehrere Betriebssysteme) oder für ein spezielles Betriebssystem. Die Funktionsweise ist stets ähnlich: Um ein Grafiktoolkit aus Python zu verwenden, muss man über eine Bibliothek die entsprechende Bindung zwischen dem Python-Programm und dem Grafiktoolkit herstellen.

Tkinter

Wie bereits erwähnt, ist Tkinter Standard für grafische Benutzeroberflächen, die direkt mit Python erstellt werden. Sehen wir uns das grundsätzliche Vorgehen an. Da Tkinter zur Standardbibliothek von Python gehört, ist keine separate Installation notwendig – starten wir direkt mit ersten Experimenten. Wir gehen davon aus, dass Sie Version 3.7 von Python installiert haben. Als Editor können Sie zum Beispiel Visual Studio Code (plattformübergreifend) mit einem Plug-in Ihrer Wahl zur Unterstützung der Programmiersprache Python wählen. Jeder andere Editor ist natürlich auch geeignet.

Ein erstes Fenster („Hello World“) erstellen Sie mit folgendem Code:

from tkinter import * # Ein Fenster erstellen window = Tk() # Den Fenstertitle erstellen window.title("Hello World") # Ereignisschleife, auf Reaktion des Benutzers warten window.mainloop()

Wir importieren als Erstes das Modul Tkinter mit allen Funktionen und Methoden (from tkinter import *). Danach wird ein neues Fenster erstellt (window = Tk()), die Eigenschaft title erhält einen Wert und die Programms...

Neugierig geworden? Wir haben diese Angebote für dich:

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