How to disable a Combobox in Tkinter?

Basically, I want to disable a certain Combobox, based on the value of another combobox. I couldn't find a answer to this question, maybe because it's very uncommon to do this to a Combobox.

I have a code more or less as follow...

    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"

Thanks in advance

EDIT!!!!

After persisting, found the answer, and it is quite simple. For those who may be interested, the solution can be found here: http://www.tcl.tk/man/tcl8.5/TkCmd/ttk_combobox.htm

"state='disabled', 'readonly' or 'normal' "


You want to use the Combobox option of state='disabled' .

There are three options for state as follows:

  • state='normal' which is the fully functional Combobox .
  • state='readonly' which is the Combobox with a value, but can't be changed (directly).
  • state='disabled' which is where the Combobox cannot be interacted with.
  • 链接地址: http://www.djcxy.com/p/21468.html

    上一篇: Nginx的SSL

    下一篇: 如何禁用Tkinter中的Combobox?