菜单Menu
简单介绍
语法:
Menu(父对象,options,…)
相关方法:
1.add_cascode():建立分层菜单,同时让此子功能列表与父菜单建立链接。
2.add_command():增加菜单列表。
3.add_separator():增加菜单列表的分隔线。
简单应用
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()
去掉上面那个虚线。
修改代码:
file_menu = Menu(menu_bar,tearoff=0)
插入分隔线
file_menu.add_separator()
建立子菜单
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()
建立弹出式菜单
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()
右键任何区域就会弹出菜单。