Python ...在菜单选项选择上隐藏小部件 - Tkinter

时间:2014-02-06 00:38:15

标签: python tkinter

使用Tkinter时,我尝试使标签消失,当使用MenuOption()选择特定选项时,另一个标签出现在其位置。我可以在不需要“刷新”按钮的情况下实现这一目标吗?

使用我的代码示例进行了更新:

mGui = Tk()
mGui.geometry('570x130+700+200')
mGui.resizable(width = FALSE, height = FALSE)
mGui.title('Title')


mylist = ['henry', 'tom', 'phil']
someValue = StringVar()

mLabel = Label(text = 'name:  ').grid(row = 0, column = 0, sticky = E)

someMenu = OptionMenu(mGui, someValue, *mylist)
someMenu.grid(row = 0, column = 1, sticky = W)
someMenu.config(width = 14, anchor = W)

mGui.mainloop()

所以,如果someMenu.get()=='tom'我想隐藏mLabel ......

所以我添加了以下内容:

def something():
        print someValue.get()

mylist = ['henry', 'tom', 'phil']
someValue = StringVar()
someValue.trace('w', something)

我得到TypeError:'NoneType'对象不可调用.. hmmmmm

2 个答案:

答案 0 :(得分:1)

您可以在someValue上设置跟踪,只要值发生变化,就可以调用函数。在该功能中,您可以执行任何操作,包括删除小部件。

本网站有一个例子:http://effbot.org/tkinterbook/variable.htm

答案 1 :(得分:1)

if someMenu.get == "tom":
    buttonName.pack()
else:
    buttonName.pack_forget()