Ich habe eine folgende Art von Code, wo ich Abfrage-Schaltfläche verschwinden soll, wenn das Eingabefeld leer ist. Aber das passiert nicht. Wenn ich versuchte, den Eingabewert beim Drücken einer beliebigen Taste zu drucken, wird der letzte Wert angezeigt, nicht der aktuelle Wert.Validieren Befehl funktioniert nicht wie erwartet in Tkinter Eintrag Widget
z. Wenn "Test" der vorherige Wert in Pin ist, wird beim Drücken der Rücktaste pin.get()
Test anstelle von "Tes" angezeigt. Ich bin neu bei Python und Tkinter, also weiß nicht, was für eine dumme Sache ich mache.
def send_button():
print pin.get()
if pin.get() == "":
print "in if"
query.place_forget()
else:
query.place(relx=0.0, rely=0.75, relwidth=0.2, relheight=0.15)
return TRUE
#Entry box
pin = StringVar()
ent1 = Entry(top, textvariable = pin, validate = 'key', vcmd = send_button)
#Query button
query = Button (top, command = get_temp, text = 'Query')
top.mainloop()
Eine Sache, stellte fest, dass „ist“ anstelle von „==“ für String Match-Code in der Schleife, wenn über die Verwendung wird. Aber wieder, es läuft ein Zeichen zurück. Und am Ende, wenn der Eintrag leer ist, geht es nicht in die Funktion send_button. Danach, wenn Sie ein beliebiges Zeichen eingeben, verschwindet die Abfrage-Schaltfläche und wird angezeigt, nachdem Sie das zweite Zeichen eingegeben haben – Dcode