如何通过下拉框禁用/启用小部件?

1 投票
1 回答
3144 浏览
提问于 2025-04-16 17:32

有没有办法通过下拉框(比如选项菜单)来切换一个小部件的启用和禁用状态?

我的意思是,当选择某个选项时就启用它,选择其他选项时就禁用它……

如果可以的话,怎么做呢?

我试过类似的代码,但没有成功……

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)

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()

撰写回答