7
基本上,我想基於另一個組合框的值禁用某個組合框。 我找不到這個問題的答案,也許是因爲這對於Combobox來說是非常罕見的。如何禁用Tkinter中的Combobox?
我有一個代碼,或多或少地遵循...
self.cBox1Var=tki.StringVar()
self.cBox1=ttk.Combobox(self.mframe, width=16, textvariable=self.cBox1Var, state='readonly',values=['Text entry','Combo box','Check button'])
self.cBox1.grid(row=0,column=1,sticky=tki.W)
self.cBox1Var.set('Text entry')
self.cBox1Var.bind("<<ComboboxSelected>>", lambda event, count=count: self.EnableDisableParamFields(event, count))
self.cBox2Var=tki.StringVar()
self.cBox2=ttk.Combobox(self.mframe, width=16, textvariable=self.cBox2Var, state='readonly',values=['String','Integer','Float'])
self.cBox2.grid(row=0,column=2,sticky=tki.W)
self.cBox2Var.set('String')
...
def EnableDisableParamFields(self, event, count):
if self.cBox1Var.get()=='Combo box': #disable 'Entry format combo box'
#disable "self.cBox2"
else:
#enable "self.cBox2"
在此先感謝
編輯!!!!
經過堅持,找到了答案,而且很簡單。 對於那些誰可能有興趣,該解決方案可以在這裏找到:http://www.tcl.tk/man/tcl8.5/TkCmd/ttk_combobox.htm
「狀態=‘已禁用’,‘只讀’或‘正常’的」
BWT:你甚至可以使用'.grid_forget()隱藏小部件 - – furas