python:tkinter:tkintereinstieg
Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Einstieg in Tkinter
Grafische Oberflächen bestehen aus sogenannten Widgets, die meist mit der Maus bedient werden und damit eine Aktion auslösen. Widgets können sein: Buttons, ein- und mehrzeilige Eingabefelder, Labels, List- und Comboboxen … Das Programm läuft in einer „Endlosschleife“ und wartet auf Nutzereingaben mit Maus und Tastatur, mit den Aktionen ausgelöst werden, u.a. auch das Beenden des Programms.
Ein erstes Beispiel
- tkinter01.py
# Tkinter wird importiert import tkinter # Funktion zum beenden des Programms. def ende(): main.destroy() # Das Hauptfenster wird erzeugt. main = tkinter.Tk() # Ein Button wird erzeugt. # Dem Button wird die Funktion ende() zugeordnet. b = tkinter.Button(main, text = "Beenden", command = ende) # Der Button wird zum Hauptfenster hinzugefügt. b.pack() # Die Hauptschleife wird gestartet. main.mainloop()
- Mit
import tkinter
wird die Tkinter-Bibliothek importiert. - Die Funktion
ende()
beendet die Hauptschleife des Programms und zerstört das Tk-Objekt. - Mit
main = tkinter.Tk()
wird ein Objekt der Klasse Tk erzeugt. Es repräsentiert das Hauptfenster des Programms. - Mit
b = tkinter.Button(main, text = "Beenden", command = ende)
wird ein Objekt vom Typ Button (ein Widget) erzeugt. Das Elternobjekt istmain
, also das Hauptfenster. Die Aufschrift des Buttons (Eigenschafttext
) ist „Beenden“. Dem Button ist die Funktion ende() zugeordnet (command=ende
), d.h. wenn der Button mit der Maus gedrückt wird (Hauptaktion des Buttons), wird die Funktion Ende aufegrufen und das Programm beendet. - Mit
b.pack()
wird der Button zum Hauptfenster hinzugefügt. - Mit
main.mainloop()
wird das Hauptfenster des Programms erzeugt und die Hauptschleife gestartet. Das Programm wartet jetzt auf Maus- und Tastaturaktionen, bis es beendet wird.
Aufgabe 1
Teste das Programm! Verändere die Aufschrift des Buttons!
Weitere einfache Widgets
python/tkinter/tkintereinstieg.1695796439.txt.gz · Zuletzt geändert: 2023/09/27 08:33 von lutz