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