我的GUI中有一个OptionMenu,它由一个列表填充。每次用户运行某个进程时,列表都会更新以反映这一点。有没有办法根据列表更新选项菜单?我试过按照this question来做self.plotWindow.update()
,但没有成功。但是,关闭并重新打开窗口会像您所期望的那样刷新选项菜单。相关代码:
if self.figNum.get() == 'New Figure...':
if self.figList[-1] == 'New Figure...':
self.figList.append(1)
else:
self.figList.append(self.figList[-1]+1)
self.plotWindow.update() #tk.Tk() window
self.i = self.figList[-1]
else:
self.i = self.figNum.get()
选项菜单中的选项未绑定到创建它们的列表。因此,更改列表不会更改选项菜单,您必须自己更新它。
您可以通过获取OptionMenu的
menu
来实现这一点,并向其中添加命令。下面的示例演示如何执行此操作(基于this answer)。它表明,即使使用“Add option to list”按钮在
self.options
列表后面附加了一个选项,OptionMenu也不会自动更改。要更新option menu,您可以为此使用“更新选项菜单”按钮,该按钮调用self.update_option_menu
。此函数从OptionMenu中删除所有选项,并为self.options
中的每个项插入一个新选项。相关问题 更多 >
编程相关推荐