python选择菜单选项时隐藏小部件-Tkinter

python选择菜单选项时隐藏小部件-Tkinter,python,tkinter,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 = Str

使用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

您可以在
someValue
上放置跟踪,该跟踪可以在值更改时调用函数。在这个函数中,你可以做任何你想做的事情,包括删除小部件


这个网站有一个例子:

grid。。。我到处搜索,找到了grid_remove方法,只是不知道如何在选择选项时集成它。你只是想更改文本,还是完全删除标签?或者,可能更有效地更改文本,但我还没有做到这一点(初学者程序员)还请简要解释代码,使其更具教育意义。这可能行不通——取决于小部件最初的布局,下次添加时,它们可能会被添加到不同的位置。@BryanOakley同意。这更多的是一个提示,他从来没有宣布他如何创建按钮在第一位。但这是标准的。@user3158670:在堆栈溢出的注释中,最好使用提示。答案是肯定的和完整的质量帖子。结果发现我在某物()中缺少*args。现在它工作了!:)
if someMenu.get == "tom":
    buttonName.pack()
else:
    buttonName.pack_forget()