Python Tkinter: Eingabe lesen

Ein Computerfenster, das die Wörter Python und Eingabefeld enthält.

Heute schauen wir uns an, wie man mit Python ein Eingabefeld erstellen und auslesen kann.

Wir benutzen für unser Programm das Modul tkinter, mit dem man ziemlich einfach grafische Oberflächen erzeugen kann. Das Modul ist schon vorinstalliert, wir müssen also nichts weiter installieren, sondern müssen das Modul nur in unser Skript importieren.

from tkinter import *

Als nächstes erzeugen wir ein Fenster und geben dem Fenster auch gleich mal einen Namen.

window = Tk()
window.title("Eingabe")

In unserem Fenster wollen wir jetzt zwei Elemente haben. Einmal ein Eingabefeld und dann noch einen kleinen Button, mit dem wir die Eingabe bestätigen.

input_field = Entry(window)
ok_button = Button(text='Ok')

Beide Felder existieren jetzt schon mal, wir müssen sie aber noch auf unserem Fenster platzieren.

input_field.pack()
ok_button.pack()

Jetzt müssen wir eigentlich Tkinter nur noch einen Startbefehl geben.

window.mainloop()

Probieren wir aus, was passiert!

Screenshot eines Computerfensters mit einem Eingabefeld und einem "OK"-Button

Das Fenster wird jetzt schon mal angezeigt. Blöderweise macht unser Button aber noch nichts. Kann er aber auch nicht, denn wir haben ja noch nicht festgelegt, was er überhaupt machen soll. Wir wollen ja den Text aus dem input_field lesen und dafür schreiben wir jetzt die entsprechende Funktion.

def read_input_field():
    current_input = input_field.get()
    print(current_input)

Jetzt müssen wir die Funktion nur noch mit dem Button verknüpfen. Das funktioniert über den Command-Parameter, den wir einfach dort festlegen, wo wir unseren Button erstellt haben.

ok_button = Button(text='Ok', command=read_input_field)

Probieren wir es aus!

Und schon haben wir es geschafft.

✅ Kompletter Quellcode

from tkinter import *


def read_input_field():
    current_input = input_field.get()
    print(current_input)


window = Tk()
window.title("Eingabe")

input_field = Entry(window)
ok_button = Button(text='Ok', command=read_input_field)

input_field.pack()
ok_button.pack()

window.mainloop()