如何知道选项菜单 Tkinter Closed 中的所有禁用选项

How to know all the disabled options in an Options Menu Tkinter Closed

我已经禁用了 OptionMenu 中的一个选项来修复代码中的某些内容,如果我点击它只会复制它,所以我认为禁用该选项是一个简单的解决方法,但是当用户可能想要更改时对于另一个选项,这两个选项现在都被禁用,使第一个选项不再可用。我现在需要return这个选项才能正常。我想获得所有被禁用的选项,但无法弄清楚如何做到这一点。抱歉段落太长了。

任何建议都是有用的。

您可能需要考虑一种 object-oriented 方法,为您的对象定义字典、列表或其他一些设置数组,您可以从中轻松获取任何单个控件的状态。即使你不想做 OOP,你也应该自己将当前设置保存到一个数组中。

假设optmenuOptionMenu的实例,下面的代码将return所有被禁用的项目:

# optmenu is the instance of OptionMenu
menu = optmenu['menu']
items = []  # list to hold all disabled items
# go through all option items
for i in range(menu.index('end')+1):
    if menu.entrycget(i, 'state') == 'disabled':
        items.append(menu.entrycget(i, 'label'))
print(items)