2017-10-09 3 views
0
game_entry = Entry(gs, width = 10, bg = 'white') 
game_entry.grid(row=4, column = 0, sticky=W) 
ip = game_entry.get() 
part1 = partial(click2, ip) 
Button(gs, text = "Submit", width = 6, command = part1, bg='white').grid(row=5, column = 0, sticky=W) 
output = Text(gs, width = 25, height = 1, wrap=WORD,bg = 'white') 
output.grid(row = 7,column=0,sticky=W) 

def click2(a): 
    if a == 'a': 
     print('hello') 

Wenn ich auf die Schaltfläche klicken und das Eingabefeld sagt ‚a‘ (ohne die Anführungszeichen), wird nichts gedruckt, und wenn ich definieren click2 als:.get() nicht richtig mit Eingabefeldern in tkinter Arbeits

und geben Sie 'a' (wieder, ohne Anführungszeichen), es druckt es sogar dachte, es sollte nicht.

Weiß jemand warum?

Dank

Antwort

2

Das Problem ist, weil Sie den Wert des Eintrags Widget etwa einer Millisekunde erhalten, nachdem Sie den Eintrag Widget erstellen. Sie müssen warten, bis der Benutzer auf die Schaltfläche klickt, bevor Sie die Methode .get() aufrufen.

+0

Ich werde dieses Dankeschön versuchen – Daniel