我正在学习使用 Python 和 Tkinter 创建软件。现在我需要根据不同的条件更改菜单项,但找不到简单的方法。好吧,让我试着用一个例子清楚地解释我的问题:
如图所示,我在左侧有一个列表框,在右侧有一个列表框。我还有一个移动项目的菜单,命令是“向右移动”、“向左移动”和“交换”。考虑以下条件:
- 当我只在左侧列表框中选择项目时,我只希望启用“向右移动”命令,如图所示。
- 当我只在右侧列表框中选择项目时,我只希望启用“向左移动”命令。
- 当我在两个列表框中选择项目时,我希望启用所有命令。
- 当我没有选择任何项目时,我希望禁用所有命令。
我知道我可以通过将事件“ListboxSelect”和“Button-1”绑定到某些函数来完成工作,然后使用这些函数来配置菜单。但是当我在实际软件中有五个列表框时,这确实是一项复杂的工作。所以我想知道是否有一种简单的方法可以做到这一点,比如重载 tkinter.Menu 类中的一些函数(我尝试重载 post()、grid()、pack() 和 place(),它们都不起作用)。
欢迎任何想法。