检查 tkinter 中的菜单项是启用还是禁用

Check whether a Menu item is enabled or disabled in tkinter

有没有办法检查 tkinter 中的菜单项是否启用?

代码如下:

from tkinter import *

root = Tk()
root.geometry("500x500")

def disable_menus():
    test_menu.entryconfig("Sub-Menu 1" , state=DISABLED)
    test_menu.entryconfig("Sub-Menu 2" , state=DISABLED)

def enable_menus():
    test_menu.entryconfig("Sub-Menu 1", state="normal")
    test_menu.entryconfig("Sub-Menu 2", state="normal")

def check_state():
    # Code to check if the sub-menus are enabled or not
    pass

disable_button = Button(root , text = "Disable Menus" , command = disable_menus)
disable_button.grid(row = 0 , column = 0 , padx = 20 , pady = 20)

enable_button = Button(root , text = "Enable Menus" , command = enable_menus)
enable_button.grid(row = 1 , column = 0)

check_button = Button(root , text = "Check State" , command = check_state)
check_button.grid(row = 0 , column = 1)

main_menu = Menu(root)
root.config(menu=main_menu)

test_menu = Menu(main_menu)
main_menu.add_cascade(label = "Test Menu 1" , menu = test_menu)

test_menu.add_command(label = "Sub-Menu 1")
test_menu.add_command(label = "Sub-Menu 2")

mainloop()

这里当我点击check_button时,我想检查菜单项是否启用。

有什么方法可以在 tkinter 中实现这个吗?

如果有人能帮助我,那就太好了?

使用menu.entrycget(index, option) 这将return 选项的值。 你的情况:

test_menu.entrycget("Sub-Menu 1", 'state')

这将return“子菜单 1”的状态。