Tkinter.菜单Menu

菜单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()

在这里插入图片描述
右键任何区域就会弹出菜单。

猜你喜欢

转载自blog.csdn.net/qq_44862120/article/details/108058204