GUI中菜单
2021-01-17 本文已影响0人
Chaweys
#coding=utf-8
from tkinter.filedialog import *
from tkinter.colorchooser import *
class Application(Frame):
def __init__(self,master):
super().__init__(master)
self.pack()
self.createWidget()
def createWidget(self):
#创建菜单栏
self.menubar=Menu(self)
#在菜单栏创建各个子菜单
self.menuFile=Menu(self.menubar)
self.menuEdit=Menu(self.menubar)
self.menuHelp=Menu(self.menubar)
#将各个子菜单加入到菜单栏中
self.menubar.add_cascade(label="文件(F)",menu=self.menuFile)
self.menubar.add_cascade(label="编辑(E)",menu=self.menuEdit)
self.menubar.add_cascade(label="帮助(H)",menu=self.menuHelp)
#为各个子菜单添加菜单选项,当点击菜单时会有选项弹出,
#accelerator="ctrl+f"表示添加的快捷键,如果真要实现快捷键的操作,需要与按键事件进行绑定
self.menuFile.add_command(label="新建",accelerator="ctrl+f",command=self.test)
self.menuFile.add_command(label="打开",accelerator="ctrl+o",command=self.test)
self.menuFile.add_command(label="保存",accelerator="ctrl+s",command=self.test)
self.menuFile.add_command(label="退出",accelerator="ctrl+w",command=self.test)
#添加分割线
self.menuFile.add_separator()
#将主菜单栏添加到根窗口中
self.master["menu"]=self.menubar
#在菜单下方添加文本编辑区域
self.text01=Text(self,width=350,height=300)
self.text01.pack()
#创建快捷菜单-上下文菜单-右键菜单栏
self.menubar2=Menu(self)
self.menubar2.add_command(label="背景颜色",command=self.openAskcolor)
#对menubar2菜单栏创建子菜单:menubar3
self.menubar3=Menu(self.menubar2,tearoff=0)
self.menubar3.add_command(label="剪切")
self.menubar3.add_command(label="复制")
self.menubar3.add_command(label="粘贴")
#将子菜单menubar3添加进主菜单栏menubar2中
self.menubar2.add_cascade(label="编辑",menu=self.menubar3)
#为文本编辑区域绑定鼠标右键事件,当点击鼠标右键触发调用方法self.test2
self.text01.bind("<Button-3>",self.test2)
#将菜单和事件的任意坐标位置联系起来,然后展示菜单
def test2(self,event):
self.menubar2.post(event.x_root,event.y_root)
#对文本编辑区域设置背景色
def openAskcolor(self):
self.color=askcolor(color="green",title="颜色选择框")
self.text01.config(bg=self.color[1])
def test(self):
pass
if __name__=="__main__":
root=Tk()
root.title("菜单")
root.geometry("350x300+300+300")
app=Application(root)
root.mainloop()
菜单.png
菜单2.png