使用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
答案 0 :(得分:1)
您可以在someValue
上设置跟踪,只要值发生变化,就可以调用函数。在该功能中,您可以执行任何操作,包括删除小部件。
答案 1 :(得分:1)
if someMenu.get == "tom":
buttonName.pack()
else:
buttonName.pack_forget()