Python菜单

  1. 创建菜单栏 menubar = wx.MenuBar()
  2. 创建父菜单 menu = wx.Menu()
  3. 把父菜单添加到菜单栏 membar.Append(menu,u"文件")
  4. 添加子菜单 memu.Append(id,strName)
  5. self.Bind(wx.EVT_MENU,function,id)


#-*- 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() 




                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Car12

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值