можно переключаться между включением/отключением виджета с использованием опции в 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)
Да, это возможно. Вот пример:
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()
if op.get() is "opt1":
- используйте==
вместоis
. Вы должны использовать толькоis
если вы хотите проверить, являются ли два объекта абсолютно одинаковыми (как вsomefruit is anotherfruit
) - в этом случае вы хотите проверить только, если они равны (как вsomenumber == 1337
)