Menu
basic introduction
grammar:
Menu(parent object, options,...)
Related methods:
1.add_cascode(): Create a hierarchical menu, and at the same time let this sub-function list establish a link with the parent menu.
2.add_command(): Add menu list.
3.add_separator(): Increase the separator line of the menu list.
Simple application
from tkinter import *
class Application(Tk):
def __init__(self):
super().__init__()
self.set_window()
self.menu_bar()
# 设置窗口界面
def set_window(self):
self.title("萤火虫")
self.geometry("1000x800+100+100")
def menu_bar(self):
menu_bar = Menu(self)
# 添加菜单项目
file_menu = Menu(menu_bar)
file_menu.add_command(label="新建", command="")
file_menu.add_command(label="打开", command="")
file_menu.add_command(label="保存", command="")
menu_bar.add_cascade(label="文件", menu=file_menu)
edit_menu=Menu(menu_bar)
edit_menu.add_command(label="撤回",command="")
menu_bar.add_cascade(label="编辑", menu=edit_menu)
self["menu"]=menu_bar
if __name__ == '__main__':
app=Application()
app.mainloop()
Remove the dotted line above.
Modify the code:
file_menu = Menu(menu_bar,tearoff=0)
Insert divider
file_menu.add_separator()
Create submenu
from tkinter import *
class Application(Tk):
def __init__(self):
super().__init__()
self.set_window()
self.menu_bar()
# 设置窗口界面
def set_window(self):
self.title("萤火虫")
self.geometry("1000x800+100+100")
def menu_bar(self):
menu_bar = Menu(self)
# 添加菜单项目
file_menu = Menu(menu_bar,tearoff=0)
file_menu.add_command(label="新建", command="")
file_menu.add_command(label="打开", command="")
file_menu.add_separator()
file_menu.add_command(label="保存", command="")
menu_bar.add_cascade(label="文件", menu=file_menu)
edit_menu=Menu(menu_bar,tearoff=0)
edit_menu.add_command(label="撤回",command="")
menu_bar.add_cascade(label="编辑", menu=edit_menu)
view_menu = Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label="视图",menu=view_menu)
# 主题子菜单
theme_menu=Menu(view_menu)
theme_menu.add_command(label="白天",command="")
theme_menu.add_command(label="黑夜",command="")
view_menu.add_cascade(label="主题",menu=theme_menu)
self["menu"]=menu_bar
if __name__ == '__main__':
app=Application()
app.mainloop()
Create pop-up menu
from tkinter import *
class Application(Tk):
def __init__(self):
super().__init__()
self.set_window()
self.menu_bar()
# 设置窗口界面
def set_window(self):
self.title("萤火虫")
self.geometry("1000x800+100+100")
def menu_bar(self):
menu_bar = Menu(self)
# 添加菜单项目
file_menu = Menu(menu_bar,tearoff=0)
file_menu.add_command(label="新建", command="")
file_menu.add_command(label="打开", command="")
file_menu.add_separator()
file_menu.add_command(label="保存", command="")
menu_bar.add_cascade(label="文件", menu=file_menu)
edit_menu=Menu(menu_bar,tearoff=0)
edit_menu.add_command(label="撤回",command="")
menu_bar.add_cascade(label="编辑", menu=edit_menu)
view_menu = Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label="视图",menu=view_menu)
# 主题
theme_menu=Menu(view_menu)
theme_menu.add_command(label="白天",command="")
theme_menu.add_command(label="黑夜",command="")
view_menu.add_cascade(label="主题",menu=theme_menu)
#弹出式菜单
self.popupmenu=Menu(self,tearoff=0)
self.popupmenu.add_command(label="复制",command="")
self.popupmenu.add_command(label="粘贴",command="")
self.bind("<Button-3>",self.showpopupmenu)
self["menu"]=menu_bar
def showpopupmenu(self,event):
self.popupmenu.post(event.x_root,event.y_root)
if __name__ == '__main__':
app=Application()
app.mainloop()
Right-click any area and a menu will pop up.