Tkinter. Menu Menu

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

Insert picture description here
Remove the dotted line above.
Modify the code:

file_menu = Menu(menu_bar,tearoff=0)

Insert picture description here
Insert divider

file_menu.add_separator()

Insert picture description here
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()

Insert picture description here
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()

Insert picture description here
Right-click any area and a menu will pop up.

Guess you like

Origin blog.csdn.net/qq_44862120/article/details/108058204