Sagen wir, ich habe 2 Eintrag Widgets, 1 Optionsmenü (Dropdown-Liste) und 1 Schaltfläche in Tkinter. ? Wie kann ich den Button Widget Zustand auf Deaktiviert gesetzt, bis alle drei Widgets vom Benutzer gefüllt werden Dies ist, was ich habe zur Zeit:Python tkinter Deaktivieren Sie die Schaltfläche, bis alle Felder ausgefüllt sind
import Tkinter as tk
root = tk.Tk()
entry1=tk.Entry(root,width=15).grid(row=1,column=1)
entry2=tk.Entry(root,width=15).grid(row=1,column=2)
choices=('a','b','c')
var=tk.StringVar(root)
option=tk.OptionMenu(root,var,*choices)
option.grid(row=1,column=3)
button=tk.Button(root,text="submit")
button.grid(row=1,column=4)
root.mainloop()
--EDIT--
auf diese Weise versucht, aber Ich denke nicht, dass dies der richtige Weg ist.
import Tkinter as tk
root = tk.Tk()
def myfunction(event):
x=var.get()
y=entry1.get()
z=entry2.get()
print len(x),":",len(y),":",len(z)
if len(y)>0 and len(x)>0 and len(z)>0:
button.config(state='normal')
else:
button.config(state='disabled')
entry1=tk.Entry(root,width=15)
entry1.grid(row=1,column=1)
entry2=tk.Entry(root,width=15)
entry2.grid(row=1,column=2)
choices=('a','b','c')
var=tk.StringVar(root)
option=tk.OptionMenu(root,var,*choices)
option.grid(row=1,column=3)
button=tk.Button(root,text="submit")
button.grid(row=1,column=4)
root.bind("<Enter>", myfunction)
root.mainloop()
Bindung an '' erfordert, dass der Benutzer den Fokus verschiebt, bevor sich der Schaltflächenstatus ändert. Das ist keine gute Lösung. Die Schaltfläche sollte den Status ändern, sobald ein Widget Eingaben erhält. –