GUI – Tkinter

GUI bedeutet Grafische Benutzeroberfläche oder auch grafische Benutzerschnittstelle (Abk. GUI von englisch graphical user interface) bezeichnet eine Form von Benutzerschnittstelle eines Computers. Sie hat die Aufgabe, Anwendungssoftware auf einem Rechner mittels grafischer Symbole, Steuerelemente oder auch Widgets genannt, bedienbar zu machen. Für die Programmiersprache Python existieren mehrere Bibliotheken, die die GUI-Programmierung erlauben,

Python verfügt über viele GUI-Frameworks, aber Tkinter ist das einzige Framework, das in die Python-Standardbibliothek integriert ist. Tkinter hat mehrere Stärken. Es ist plattformübergreifend, sodass der gleiche Code unter Windows, MacOS und Linux funktioniert. Visuelle Elemente werden mit nativen Betriebssystemelementen gerendert, sodass mit Tkinter erstellte Anwendungen so aussehen, als gehörten sie auf die Plattform, auf der sie ausgeführt werden.

Obwohl Tkinter als De-facto-Python-GUI-Framework gilt, ist es nicht ohne Kritik. Ein bemerkenswerter Kritikpunkt ist, dass mit Tkinter erstellte GUIs veraltet aussehen. Wenn Sie eine glänzende, moderne Benutzeroberfläche wünschen, ist Tkinter möglicherweise nicht das, wonach Sie suchen.

Tkinter ist jedoch leicht und im Vergleich zu anderen Frameworks relativ schmerzfrei zu verwenden. Dies macht es zu einer überzeugenden Wahl für die Erstellung von GUI-Anwendungen in Python, insbesondere für Anwendungen, bei denen ein moderner Glanz nicht erforderlich ist. Die oberste Priorität besteht darin, schnell etwas zu erstellen, das funktional und plattformübergreifend ist.

Sie können überprüfen, ob tkinter ordnungsgemäß auf Ihrem System installiert ist, indem Sie
python -m tkinter
über die Befehlszeile ausführen. Dies sollte ein Fenster öffnen, das eine einfache Tk-Oberfläche zeigt.

Erstellen einer Python-GUI-Anwendung mit Tkinter


Das Grundelement einer Tkinter-GUI ist das Fenster. Windows sind die Container, in denen alle anderen GUI-Elemente leben. Diese anderen GUI-Elemente wie Textfelder, Beschriftungen und Schaltflächen werden als Widgets bezeichnet. Widgets sind in Fenstern enthalten.

GUI Komponenten

Grafische Benutzeroberflächen können u. a. folgende GUI-Komponenten haben:

  • Fenster: Eine GUI kann aus einem oder mehreren Fenstern bestehen.
  • Rahmen / Tafel: Rahmen (bzw. Tafeln) dienen als Behälter für andere Komponenten.
  • Schaltfäche (Button): Mit Schaltflächen werden in der Regel Programmaktionen ausgelöst.
  • Schriftfeld (Label): Schriftfelder dienen dazu, Texte auf dem Bildschirm darzustellen.
  • Eingabefeld (Entry): In Eingabefelder kann der Benutzer Zeichenketten eingeben.
  • Leinwand (Canvas): Eine Leinwand ist ein Bereich, in dem man z. B. Figuren zeichnen und Bilder anzeigen kann
  • Textfeld: Ein Textfeld ist ein Eingabebereich, in den mehrzeilige Texte geschrieben werden können.

Widgets sind Objekte, die verschiedene Attribute besitzen.

Erstellung eines GUI – Befehlsablauf

Wenn Ihre Python-Shell geöffnet ist, müssen Sie zunächst das Python-GUI-Tkinter-Modul importieren:

>>> import tkinter as tk

Ein Fenster ist eine Instanz der Tkinter-Klasse Tk. So erstellen Sie ein neues Fenster und weisen es dem variablen Fenster zu:

>>> window = tk.Tk()

Wenn Sie den obigen Code ausführen, wird ein neues Fenster auf Ihrem Bildschirm angezeigt. Wie es aussieht, hängt von Ihrem Betriebssystem ab:

Widget hinzufügen

Nachdem Sie ein Fenster haben, können Sie ein Widget hinzufügen. Verwenden Sie die Klasse tk.Label, um einem Fenster Text hinzuzufügen. Erstellen Sie ein Label-Widget mit dem Text „Hallo, Tkinter“ und weisen Sie es einer Variablen namens „greeting“ zu:

>>> greeting = tk.Label(text="Hello, Tkinter")

from tkinter import *
fenster = Tk()
titel = Label (master=fenster, text=’Hallo Welt!‘,
font=(‚Arial‘,20), fg=’red‘)
titel.pack()
fenster.mainloop()

Das Fenster wird durch den obigen Code erstellt

Optionen von Widgets

Optionen eines Widgets können bei der Instanzierung gesetzt werden: Mit Hilfe der Methode config() können ein oder mehrere Optionen eines Widgets nachträglich geändert werden:

w.config(option1=wert1[, option2=wert1 ...]) 

Beispiel: titel.config(fg=’blue‘, bg=’yellow‘)

Mit Hilfe der Methode cget() kann der Wert einer Option ausgelesen werden:

wert = w.cget('option‘) 

anzeige_text = titel.cget(‘text‘)

bd, borderwidthganze Zahl, die die Breite des Rahmens angibt
bg, backgroundHintergrundfarbe in der Form #rgb oder #rrggbb oder ‚red‘, ‚green‘, ..
fg, foregroundVordergrundfarbe (Textfarbe)
padxleerer Platz in Pixeln rechts und links vom Widget
padyleerer Platz in Pixeln oben und unten vom Widge
textBeschriftung (Zeichenkette)
fontSchriftformat: (Name, Größe[, Stil]), z.B. ('Comic SansMS',14) oder ('Courier',12,'italic')