菜单

来源:互联网 发布:linux 免费邮件服务器 编辑:程序博客网 时间:2024/04/28 23:28

菜单是桌面最常用的控件之一,菜单展现了应用程序包含的各种功能。菜单涉及菜单事件、快捷键、位图菜单、多级菜单、上下文菜单等方面的内容。

# -*- coding: UTF-8 -*-import wxclass MyFrame(wx.Frame):    def __init__(self):        wx.Frame.__init__(self, None, -1, u"菜单", size=(300, 200))#窗口创建        p = wx.Panel(self)      #面板p        menuBar = wx.MenuBar()                                # 添加菜单栏        menu = wx.Menu()     #创建父菜单        menuBar.Append(menu, u"文件")                         # 把父菜单添加到菜单栏中,标签为文件        menu.Append(1000, u"消息框")                          # 父菜单下添加子菜单,标签为消息框        menu.AppendSeparator()            #添加菜单分割线        menu.Append(1001, u"退出")        #继续添加子菜单给父菜单        self.Bind(wx.EVT_MENU, self.OnHello, id=1000)         # 添加菜单事件        self.Bind(wx.EVT_MENU, self.OnExit, id=1001)        self.SetMenuBar(menuBar)    #将该菜单栏添加到该窗口中?    def OnHello(self, event):        wx.MessageBox(u"你好!", u"提示")    def OnExit(self, event):        self.Close(True)if __name__ == "__main__":    app = wx.PySimpleApp()    frame = MyFrame()    frame.Show()    app.MainLoop()

结果



菜单事件

比如单击、选择等操作

import wxclass MyFrame(wx.Frame):    def __init__(self):        wx.Frame.__init__(self, None, -1, u"菜单的事件", size=(300, 200))  #窗口        p = wx.Panel(self)                                   #面板        menuBar = wx.MenuBar()                              #一、创建菜单栏,此时还不能将父菜单添加到菜单栏        self.mainMenu1 = wx.Menu()                          #二、创建父菜单及子菜单        self.mainMenu1.Append(1000, u"退出")      # 子菜单id号为1000,标签为退出        self.mainMenu1.Append(1001, u"测试")        #也可以实例化方式写子菜单subsetmenu=mainMenu1.Append(1001, u"测试")此时在        self.mainMenu2 = wx.Menu()                # 子菜单id号为1000,标签为退出        self.mainMenu2.Append(1003, u"打开/屏蔽菜单")        self.mainMenu2.Append(1004, u"测试")        menuBar.Append(self.mainMenu1, u"主菜单")         #三、将父菜单添加到菜单栏        menuBar.Append(self.mainMenu2, u"设置")        self.Bind(wx.EVT_MENU, self.OnExit, id = 1000)    #四、绑定菜单与事件        self.Bind(wx.EVT_MENU_HIGHLIGHT, self.OnItemSelected, id = 1000)        self.Bind(wx.EVT_MENU, self.OnEnable, id=1003)        self.SetMenuBar(menuBar)       #五、将菜单栏添加到该窗口    def OnEnable(self, event):        #六、具体定义事件函数        menubar = self.GetMenuBar()        enabled = menubar.IsEnabled(1000)                        # 获取菜单的enable属性        self.mainMenu1.Enable(1000, not enabled)                  # 设置菜单的enable选项    def OnExit(self, event):        self.Close()        def OnItemSelected(self, event):                             # 当菜单高亮时返回菜单的名称        item = self.GetMenuBar().FindItemById(event.GetId())     # 获取菜单项           wx.MessageBox(u"菜单:%s" % item.GetText())if __name__ == "__main__":    app = wx.PySimpleApp()    frame = MyFrame()    frame.Show()    app.MainLoop()

结果:








0 0
原创粉丝点击