отключить / включить виджет с помощью выпадающего списка?

1

можно переключаться между включением/отключением виджета с использованием опции в combobox (optionmenu, dropdown)? я имею в виду включить его, если опция выбрана... с другими, отключена...

если да, то как?

Я попробовал что-то вроде этого, но это не сработало...

op = StringVar(root)
op.set("------")
o0 = OptionMenu(root, op, "opt1", "opt2", "opt3","opt4")

if op.get() is "opt1":
    e_state = 'ENABLED'
else:
    e_state = 'DISABLED'

en9 = Entry(root, width = 30, background = 'white', textvariable = seccion, state=e_state)
  • 0
    if op.get() is "opt1": - используйте == вместо is . Вы должны использовать только is если вы хотите проверить, являются ли два объекта абсолютно одинаковыми (как в somefruit is anotherfruit ) - в этом случае вы хотите проверить только, если они равны (как в somenumber == 1337 )
Теги:
tkinter
combobox

1 ответ

2
Лучший ответ

Да, это возможно. Вот пример:

import Tkinter as tk

class App(tk.Tk):
    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, **kwargs)
        self.op = tk.StringVar(self)
        self.op.set("enable")
        self.om = tk.OptionMenu(self, self.op, "enable","disable", command=self.OnOption)
        self.entry = tk.Entry(self, width=30)
        self.om.pack()
        self.entry.pack()

    def OnOption(self, event):
        state = "normal" if self.op.get() == "enable" else "disabled"
        self.entry.configure(state=state)

app=App()
app.mainloop()
  • 0
    Спасибо большое, чувак ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню