451
15.9
Die Klasse Entry
Erläuterung:
#1: Die Kontrollvariable self.text wird instanziiert.
#2: Der Option textvariable der Label-Widgets wird der Name der Kontrollvariablen zuge-
wiesen.
#3: Der Wert der Kontrollvariablen wird neu gesetzt.
15.9 Die Klasse Entry
Das Entry-Widget dient der Eingabe einer einzelnen Textzeile. Klickt man während des Pro-
grammlaufs in ein Entry-Feld, so blinkt dort ein Cursor und man kann Text eingeben oder
verändern. Die Weite (Option
width) eines Entrys wird wie bei Label-Widgets als Anzahl der
Zeichen definiert. Voreingestellt ist eine Weite von 20 Zeichen.
Zugriff auf den Inhalt des Entry-Feldes
Auf den Inhalt eines Entry-Widgets kann innerhalb des Programms auf unterschiedliche
Weise zugegriffen werden:
Die Methode get() liefert den Inhalt des Entry-Feldes als String.
Ein Aufruf der Methode delete() im Format delete(first[,last]) löscht einzelne
Zeichen aus dem Entry. Der Parameter
first ist der Index des ersten zu löschenden
Zeichens. Fehlt ein zweites Argument, so wird nur dieses Zeichen gelöscht. Ansonsten
werden alle Zeichen bis zum Index
last entfernt.
Anwendung der Option show
Die Option show='x' bewirkt, dass anstelle des eingegebenen Zeichens das Zeichen x im
Entry-Feld gezeigt wird. Diese Option kann man z.B. für eine Passworteingabe verwenden,
bei der der eingegebene Text geheim bleiben muss. Beispiel:
Label(self.fenster, font=('Palatino',20),
w idt h =22 , textvariable=self.text)] #2
self.neu()
for l in self.label: l.pack()
self.button.pack(pady=10)
self.fenster.mainloop()
def neu(self):
liste = ['Wahrnehmen mit den Augen',
'Was ist besser lesbar?',
'Gut erkennbare Worte']
self.text.set(choice(liste)) #3
lesetest=Lesetest()
Kapitel 15
Grafische Benutzungsoberflächen mit tkinter
452
Abb. 15.15: Login-Fenster mit zwei Entry-Widgets für die Eingabe von Name und Passwort
Skript:
# login.pyw
from tkinter import *
class Login:
def __init__(self):
self.user = {'Tim':'krone2', 'Mick':'selters$',
'Laura':'prater00', 'Kai':'pasta$1'} #1
self.fenster = Tk()
self.ausgabe = Label(self.fenster, width=20, height=2)
self.name = Entry(self.fenster) #2
self.passwort = Entry(self.fenster, show='*') #3
self.loginButton = Button(self.fenster,
text='login', command=self.login)
self.name.pack(padx=10, pady=10) #4
self.passwort.pack(pady=10)
self.loginButton.pack(pady=10)
self.ausgabe.pack()
self.fenster.mainloop()
def login(self):
name = self.name.get() #5
if name in self.user.keys():
if self.passwort.get() == self.user[name]:
self.ausgabe.config(text='Herzlich Willkommen, '+name+'!')
else: self.ausgabe.config(text='Passwort falsch!')
else: self.ausgabe.config(text='User unbekannt!')
self.name.config(text='') #6

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.