Entry
: Einzeiliges Eingabefeld erstellen in tkinter
Sehr oft benötigen wir einen kurzen Text oder Zahleneingabe von unserem Nutzer. Dazu eignet sich oft das einzeilige Eingabefeld am besten.
eingabefeld_wert=tk.StringVar()
eingabefeld=tk.Entry(root, textvariable=eingabefeld_wert)
eingabefeld.pack()
Über das Attribut textvariable=
wird eine Steuerelementvariable gesetzt, über die wir auf den Inhalt (sprich die Nutzereingabe) lesend zugreifen können über variablenname.get()
. Genauso können wir auch selber Inhalt aus dem Programm in diesen Bereich schreiben über variablenname.set()
.
eingabefeld_wert=tk.StringVar()
eingabefeld=tk.Entry(root, textvariable=eingabefeld_wert)
eingabefeld.pack()
eingabefeld_wert.set('12345')
Entry-Eingabefeld als Passwort-Feld
Wenn wir ein Passwort abfragen möchten, bietet sich das einzeilige Eingabefeld an. Allerdings möchten wir nicht, dass jemand das Passwort mitlesen kann, wenn er über die Schulter auf den Bildschirm eines „Geheimnisträgers“ schaut.
Daher soll doch bitte anstelle von der eigentlichen Eingabe dann die typischen Sterne kommen. Kein Problem bei Tkinter: wir haben einen weiteren Parameter, der die Zeichen festlegt, die anstelle einer Eingabe angezeigt werden. Dieser Paramater ist show="*"
und sollte mehr als ein Zeichen im Parameter eingetragen werden, wird nur das erste Zeichen verwendet. Einfach einmal testen über show=":)"
Und hier als Beispielcode:
eingabefeld_wert=tk.StringVar()
eingabefeld=tk.Entry(root, textvariable=eingabefeld_wert, show="*")
eingabefeld.pack()
Der Parameter kann auch in anderer Form übergeben werden. Dadurch wird der Code übersichtlicher:
eingabefeld=tk.Entry(root)
eingabefeld_wert=tk.StringVar()
eingabefeld["textvariable"] = eingabefeld_wert
eingabefeld["show"] = "*"
eingabefeld.pack()
Weitere Parameter bei entry
background, bd, bg, borderwidth, fg, foreground, justify, relief, takefocus, width