2011-05-12 51 views
1

可以在使用组合框中的选项启用/禁用小部件(选项菜单,下拉菜单)之间进行切换? 我的意思是,如果一个选项被选中...启用它...与其他人,禁用...使用组合框禁用/启用小部件?

如果是的话,怎么样?

我tryed这样的事情,但它没有工作......

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

'如果op.get()是“opt1”:' - 使用'=='而不是'is'。如果你想测试两个对象是否完全相同**(如'somefruit是anotherfruit'),那么你只应该使用'is',在这种情况下你只想测试它们是否相等(如'somenumber == 1337') – ThiefMaster 2011-05-12 23:11:45

回答

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

非常感谢你的兄弟... – Hairo 2011-05-14 16:34:21