更新tkinter菜单栏项目的标签?


问题内容

是否可以使用tkinter更改菜单中项目的标签?

在下面的示例中,我想将其从“示例项目”(在“文件”菜单中)更改为其他值。

from tkinter import *

root = Tk()
menu_bar = Menu(root)

file_menu = Menu(menu_bar, tearoff=False)
file_menu.add_command(label="An example item", command=lambda: print('clicked!'))
menu_bar.add_cascade(label="File", menu=file_menu)

root.config(menu=menu_bar)
root.mainloop()

问题答案:

我自己在Tcl手册页中找到了解决方案:

使用entryconfigure()像这样的方法,该方法在单击后会更改值:

第一个参数1必须是要更改的项目的索引,从1开始。

from tkinter import *

root = Tk()
menu_bar = Menu(root)

def clicked(menu):
    menu.entryconfigure(1, label="Clicked!")

file_menu = Menu(menu_bar, tearoff=False)
file_menu.add_command(label="An example item", command=lambda: clicked(file_menu))
menu_bar.add_cascade(label="File", menu=file_menu)

root.config(menu=menu_bar)
root.mainloop()