Python GUI-Entwicklung mit Tkinter: Umfassender Leitfaden
GUI-Optionen in Python
Python bietet verschiedene Optionen für grafische Benutzeroberflächen (GUIs). Die wichtigsten:
- Tkinter – Pythons Interface zum Tk GUI-Toolkit, das mit Python ausgeliefert wird. Dieser Option widmet sich dieses Kapitel.
- wxPython – Open-Source Python-Interface für wxWindows (wxpython.org).
- JPython – Python-Port für Java, nahtloser Zugriff auf Java-Klassenbibliotheken (jython.org).
Weitere Interfaces finden Sie im Netz.
Tkinter-Programmierung
Tkinter ist die Standard-GUI-Bibliothek für Python. Python mit Tkinter bietet einen schnellen und einfachen Weg, GUI-Anwendungen zu erstellen. Tkinter stellt eine mächtige objektorientierte Schnittstelle zum Tk GUI-Toolkit bereit.
Eine GUI-Anwendung mit Tkinter zu erstellen ist einfach. Führen Sie folgende Schritte aus:
- Importieren Sie das
Tkinter-Modul (Python 3:tkinterkleingeschrieben). - Erstellen Sie das Hauptfenster der GUI-Anwendung.
- Fügen Sie ein oder mehrere Widgets hinzu.
- Starten Sie die Haupt-Event-Loop, um auf benutzerausgelöste Events zu reagieren.
Minimalbeispiel
#!/usr/bin/python import Tkinter top = Tkinter.Tk() # Code für Widgets hier... top.mainloop()
Dies erstellt ein leeres Fenster.
Tkinter-Widgets
Tkinter stellt verschiedene Steuerelemente bereit: Buttons, Labels, Textfelder etc. Diese nennt man Widgets.
Aktuell gibt es 19 Widget-Typen in Tkinter. Die folgende Tabelle gibt einen Überblick:
| Nr. | Widget & Beschreibung |
|---|---|
| 1 | Button – Zeigt Buttons in der Anwendung an. |
| 2 | Canvas – Zeichnet Formen: Linien, Ovale, Polygone, Rechtecke. |
| 3 | Checkbutton – Zeigt Optionen als Checkboxen. Mehrfachauswahl möglich. |
| 4 | Entry – Einzeiliges Textfeld für Benutzereingaben. |
| 5 | Frame – Container-Widget zur Organisation anderer Widgets. |
| 6 | Label – Einzeilige Beschriftung für andere Widgets. Kann Bilder enthalten. |
| 7 | Listbox – Liste von Optionen für den Benutzer. |
| 8 | Menubutton – Zeigt Menüs in der Anwendung an. |
| 9 | Menu – Stellt Befehle für den Benutzer bereit, enthalten in Menubutton. |
| 10 | Message – Mehrzeilige Textfelder für Benutzereingaben. |
| 11 | Radiobutton – Optionen als Radiobuttons. Nur eine Auswahl möglich. |
| 12 | Scale – Slider-Widget. |
| 13 | Scrollbar – Scrollfunktion für Widgets wie Listboxen. |
| 14 | Text – Mehrzeilige Textanzeige. |
| 15 | Toplevel – Separates Fenster-Container. |
| 16 | Spinbox – Variante von Entry für Auswahl aus festen Werten. |
| 17 | PanedWindow – Container mit beliebig vielen Panes, horizontal oder vertikal. |
| 18 | LabelFrame – Einfacher Container als Spacer oder für komplexe Layouts. |
| 19 | tkMessageBox – Modul für Messageboxen in Anwendungen. |
Standardattribute
Gemeinsame Attribute wie Größen, Farben, Fonts:
- Dimensionen
- Farben
- Fonts
- Anker (Anchors)
- Relief-Stile
- Bitmaps
- Cursor
Geometrie-Management
Alle Tkinter-Widgets haben Zugriff auf Geometrie-Management-Methoden zur Organisation im Eltern-Widget. Tkinter stellt drei Geometry Manager bereit:
- pack() – Organisiert Widgets in Blöcken vor Platzierung im Eltern-Widget.
- grid() – Organisiert Widgets in tabellenartiger Struktur im Eltern-Widget.
- place() – Platziert Widgets an spezifischer Position im Eltern-Widget.
Diese Methoden werden im Detail in weiteren Abschnitten behandelt.
Python
- Python-Datentypen meistern: Praxisleitfaden
- Python-Operatoren meistern: Umfassender Leitfaden
- Python pass-Statement meistern: Praxisleitfaden
- Python-Funktionsargumente meistern: Positional, Keyword & Default-Parameter
- Python-Dictionaries meistern: Erstellung, Manipulation und fortgeschrittene Techniken
- Python Objektorientierte Programmierung meistern: Klassen, Vererbung, Kapselung & Polymorphie
- Python Iteratoren meistern: Funktionsweise und Erstellung eigener Iteratoren
- Python Closures erklärt: Wie verschachtelte Funktionen Variablen erfassen
- Python datetime meistern: Praktischer Leitfaden zu Datumsangaben, Zeiten und Zeitzonen
- Pythons time.sleep() meistern: Best Practices, Multithreading und Praxisbeispiele