tkinter:更改特定菜单项的前景色

2 投票
1 回答
2565 浏览
提问于 2025-04-18 02:18

在使用TKinter的时候,能不能只改变菜单中某些项目的文字颜色呢?我想让那些不太受欢迎的项目颜色淡一点,这样用户就能更快找到最常用的项目。目前我只找到Menuforeground选项,这个选项会改变所有项目的颜色(而不是特定的某些项目),或者我可以把特定项目的state选项设为disabled来改变颜色,但这样的话这些项目就不能被点击了,而我希望它们还是可以点击来执行某些操作。有没有什么建议?我希望能通过MenuMenubutton类来实现这个功能,而不需要为了这个功能从头开始重新实现一个菜单。

1 个回答

8

我觉得你在找的是 entryconfig 这个方法。它的工作原理是通过传入菜单命令的索引,然后选择一个来自 添加方法选项 的选项。下面是一个例子:

root = Tk()

menubar = Menu(root)

filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="Open")
filemenu.add_command(label="Save")
menubar.add_cascade(label="File", menu=filemenu)

#entryconfig method to change the item with index '0' to white
filemenu.entryconfig(0, foreground='white')

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

撰写回答