检查 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”的状态。
有没有办法检查 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”的状态。