#-*- coding:utf-8 -*- import wx class MenuFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self,None,-1,u'菜单',size=(300,300)) panel =wx.Panel(self,-1) menubar = wx.MenuBar() menubar1 = wx.MenuBar() menu = wx.Menu() menu1 = wx.Menu() menu2 = wx.Menu() menubar.Append(menu,u"&f文件") #Alt + f menubar.Append(menu1,u"文件1") menu.Append(1000,u"&o打开") #Alt + o menu.Append(1001,u"关闭") menu2.Append(1003,u"打开") menu2.Append(1004,u"关闭") menu.AppendMenu(-1,u"other",menu2) # 二级菜单 bmp = wx.Bitmap("001.png",wx.BITMAP_TYPE_PNG) #图标菜单 item = wx.MenuItem(menu,1005,u"return") item.SetBitmap(bmp) menu.AppendItem(item) self.SetMenuBar(menubar) self.Bind(wx.EVT_MENU, self.OnOpen,id=1000) self.Bind(wx.EVT_MENU, self.OnClose, id=1001) self.Bind(wx.EVT_MENU, self.OnOpen,id=1003) self.Bind(wx.EVT_MENU, self.OnClose, id=1004) self.Bind(wx.EVT_MENU, self.OnClose, id=1005) print menu.GetMenuItems() def OnOpen(self,event): wx.MessageBox(u"open",u"提示") print event.GetId() def OnClose(self,event): self.Close() print event.GetId() if __name__ == '__main__': app = wx.PySimpleApp() frame = MenuFrame() frame.Show() app.MainLoop()
2 弹出菜单
import wx class MyPopupMenu(wx.Menu): def __init__(self,parent): super(MyPopupMenu,self).__init__() self.parent = parent mmi = wx.MenuItem(self,wx.NewId(),'MiniSize') self.AppendItem(mmi) self.Bind(wx.EVT_MENU, self.OnMinimize, mmi) cmi = wx.MenuItem(self,wx.NewId(),'Close') self.AppendItem(cmi) self.Bind(wx.EVT_MENU, self.OnClose, cmi) def OnMinimize(self,e): self.parent.Iconize() def OnClose(self,e): self.parent.Close() class Example(wx.Frame): def __init__(self,*args,**kw): super(Example,self).__init__(*args,**kw) self.InitUI() def InitUI(self): self.Bind(wx.EVT_RIGHT_DOWN, self.OnRightDown) self.SetSize((250, 200)) self.SetTitle('Context menu') self.Centre() self.Show(True) def OnRightDown(self,e): self.PopupMenu(MyPopupMenu(self),e.GetPosition()) print 'pos',e.GetPosition() def main(): ex = wx.App() Example(None) ex.MainLoop() if __name__ == '__main__': main()