菜单
来源:互联网 发布: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
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- 菜单
- xml修改后报错: java.lang.ClassCastException: android.widget.LinearLayout
- Mobile Web前端开发系列: 动画系列(一)
- memcache 安装启动
- HDU 1754 I Hate It【线段树】
- 解决java.lang.RuntimeException: Parcel: unable to marshal value 问题
- 菜单
- UVA1153-Keep the Customer Satisfied(贪心+优先队列)
- Max Points on a Line
- PKU #1251/HDU #1301 Jungle Roads(Kruskal+并查集)
- hdparm优化硬盘
- Javascript关于数组的一些操作
- jquery $.ajax() $.get() $.load() 区别
- Jquery 获取 radio选中值
- C中的类型强制转换