假設我有2個入口小部件,1個選項菜單(下拉列表)和1個tkinter按鈕。 ?我怎樣才能按鈕控件狀態設置爲禁用,直到所有的3個部件是由用戶填寫這是我目前:Python tkinter禁用按鈕,直到所有的字段填充
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()
- 編輯 -
試過這種方法,但我不認爲這是做這件事的正確方法。
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()
綁定在''上需要用戶在按鈕狀態改變之前移動焦點。這不是一個好的解決方案。一旦小部件獲得一些輸入,該按鈕應該改變狀態。 –