Tkinter 为菜单提供了 Menu 类,该类既可代表菜单条,也可代表菜单,还可代表上下文菜单(右键菜单)。简单来说,Menu 类就可以搞定所有菜单相关内容。程序可调用 Menu 的构造方法来创建菜单,在创建菜单之后可通过如下方法添加菜单项:add_command():添加菜单项。
add_checkbutton():添加复选框菜单项。
add_radiobutton():添加单选钮菜单项。
add_separator():添加菜单分隔条。上面的前三个方法都用于添加菜单项,因此都支持如下常用选项:label:指定菜单项的文本。
command:指定为菜单项绑定的事件处理方法。
image:指定菜单项的图标。
compound:指定在菜单项中图标位于文字的哪个方位。有了菜单之后,接下来就是如何使用菜单了。菜单有两种用法:在窗口上方通过菜单条管理菜单。
通过鼠标右键触发右键菜单(上下文菜单)。
Menu窗口菜单在创建菜单之后,如果要将菜单设置为窗口的菜单条(Menu 对象可被当成菜单条使用),则只要将应菜单设为窗口的 menu 选项即可。例如如下代码:
from tkinter import *
# 导入ttk
from tkinter import ttk
from tkinter import messagebox as msgbox
class App:
def __init__(self, master):
self.master = master
self.init_menu()
# 创建菜单
def init_menu(self):
# 创建menubar,它被放入self.master中
menubar = Menu(self.master)
self.master.filenew_icon = PhotoImage(file='images/filenew.png')
self.master.fileopen_icon = PhotoImage(file='images/fileopen.png')
# 添加菜单条
self.master['menu'] = menubar
# 创建file_menu菜单,它被放入menubar中
file_men