菜单栏

    GUI程序通常都有菜单, 方便用户交互, 我们一般将菜单分为两种:

    1. 主菜单

  主菜单通常位于GUI程序的上方

    2. 上下文菜单

  快捷菜单(上下文菜单)是通过鼠标右键单击组件而弹出的菜单, 一般是和这个组件的相关操作, 比如: 剪切, 复制, 黏贴, 属性等. 

 1 from tkinter.filedialog import *
 2 from tkinter.colorchooser import *
 3 
 4 
 5 class Application(Frame):
 6     def __init__(self, master=None):
 7         super().__init__(master)
 8         self.master = master
 9         self.textpad = None
10         self.pack()
11         self.createWidget()
12 
13     def createWidget(self):
14         menubar = Menu(root)
15         menuFile = Menu(menubar)
16         menuEdit = Menu(menubar)
17         menuHelp = Menu(menubar)
18 
19         menubar.add_cascade(label='文件(F)', menu=menuFile)
20         menubar.add_cascade(label='编辑(E)', menu=menuEdit)
21         menubar.add_cascade(label='帮助(H)', menu=menuHelp)
22 
23         menuFile.add_command(label='新建', accelerator='ctrl+n', command=self.test)
24         menuFile.add_command(label='打开', accelerator='ctrl+o', command=self.test)
25         menuFile.add_command(label='保存', accelerator='ctrl+s', command=self.test)
26         menuFile.add_command(label='退出', accelerator='ctrl+q', command=self.test)
27 
28         root['menu'] = menubar
29 
30         self.textpad = Text(root, width=50, height=30)
31         self.textpad.pack()
32         self.contextMenu = Menu(root)
33         self.contextMenu.add_command(label='背景颜色', command=self.test)
34 
35         root.bind('<Button-3>', self.createContextMenu)
36 
37     def test(self):
38         pass
39 
40     def createContextMenu(self, event):
41         self.contextMenu.post(event.x_root, event.y_root)
42 
43 
44 if __name__ == '__main__':
45     root = Tk()
46     root.geometry('450x300+100+100')
47     root.title = '笔记本'
48     app = Application(master=root)
49     root.mainloop()