美文网首页
GUI中菜单

GUI中菜单

作者: Chaweys | 来源:发表于2021-01-17 16:54 被阅读0次

    #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

    相关文章

      网友评论

          本文标题:GUI中菜单

          本文链接:https://www.haomeiwen.com/subject/zmnaaktx.html