#!/usr/bin/python
#-*- coding:utf8 -*-
import wx
#一个简单的菜单示例
class MenuFrame1(wx.Frame):
def __init__(self,root):
wx.Frame.__init__(self, root, -1, u"菜单", size=(300,200))
panel = wx.Panel(self, -1)
menuBar= wx.MenuBar() #添加菜单栏
menu = wx.Menu()
menuBar.Append(menu, u"文件")
menu.Append(100,u"消息框") #注册id
menu.AppendSeparator()
menu.Append(101, u"退出")
self.Bind(wx.EVT_MENU, self.OnClick, id=100)
self.Bind(wx.EVT_MENU, self.OnExit, id=101)
self.SetMenuBar(menuBar)
def OnClick(self, event):
wx.MessageBox(u"你好", u"提示")
def OnExit(self, event):
self.Close(True)
class MenuFrame2(wx.Frame):
def __init__(self, root):
wx.Frame.__init__(self, root, -1, u"菜单示例",size=(300, 200))
panel = wx.Panel(self, -1)
menu = wx.Menu()
subMenu = wx.Menu()
subMenu.AppendCheckItem(-1, u"菜单1") #可以多选
subMenu.AppendRadioItem(-1, u"菜单2") #单选标记
menu.AppendMenu(-1, u"子菜单", subMenu)
menuBar = wx.MenuBar()
menuBar.Append(menu, u"菜单")
self.SetMenuBar(menuBar)
#简单的弹出式菜单
class MenuFrame3(wx.Frame):
def __init__(self, root):
wx.Frame.__init__(self, None, -1, u"弹出式菜单", size=(300,200))
self.panel = wx.Panel(self)
self.textCtrl = wx.TextCtrl(self.panel, -1, pos=(20,20))
menuBar = wx.MenuBar()
self.SetMenuBar(menuBar)
self.popupMenu = wx.Menu()
menuList = [u"菜单1", u"菜单2", u"菜单3"]
self.panel.Bind(wx.EVT_RIGHT_DOWN, self.OnPopup)
for menu in menuList:
item = self.popupMenu.Append(-1, menu)
self.Bind(wx.EVT_MENU, self.OnItemSelect, item)
def OnPopup(self,event):
print "test1"
#pos = self.panel.ClientToScreen(event.GetPosition())
#print pos
pos = event.GetPosition() #获得点击时的坐标
#print pos
self.panel.PopupMenu(self.popupMenu, pos)
def OnItemSelect(self, event):
print "test2"
item = self.popupMenu.FindItemById(event.GetId())
#print item.GetText()
self.textCtrl.Value = item.GetText()
#快捷键
class MenuFrame4(wx.Frame):
def __init__(self, root):
wx.Frame.__init__(self, root, -1, u"菜单快捷键", size=(300,200))
panel = wx.Panel(self, -1)
menu = wx.Menu()
exitMenu = menu.Append(-1, u"&x退出")
self.Bind(wx.EVT_MENU, self.OnExit, exitMenu)
menuBar = wx.MenuBar()
menuBar.Append(menu, u"&m菜单") #这个快捷键有点问题 指定鼠标焦点
self.SetMenuBar(menuBar)
def OnExit(self,event):
self.Close(True)
#位图菜单
class MenuFrame5(wx.Frame):
def __init__(self, root):
wx.Frame.__init__(self, root, -1, u"位图菜单", size=(300,200))
panel = wx.Panel(self, -1)
menu = wx.Menu()
img = wx.Bitmap("../day20/previous.png",wx.BITMAP_TYPE_PNG)
previousItem = wx.MenuItem(menu, -1, u"前进")
previousItem.SetBitmap(img)
menu.AppendItem(previousItem)
img1 = wx.Bitmap("next.png")#在统一文件夹 下却不能显示图标? 搞不懂。。。。
#print img1
nextItem = wx.MenuItem(menu, -1, u"后退")
nextItem.SetBitmap(img1)
menu.AppendItem(nextItem)
menuBar = wx.MenuBar()
menuBar.Append(menu, u"菜单")
self.SetMenuBar(menuBar)
class MyApp(wx.App):
def OnInit(self):
#self.frame = MenuFrame1(None)
#self.frame = MenuFrame2(None)
#self.frame = MenuFrame3(None)
#self.frame = MenuFrame4(None)
self.frame = MenuFrame5(None)
self.frame.Show()
return True
app = MyApp()
app.MainLoop()
QQ交流群: 204944806
#-*- coding:utf8 -*-
import wx
#一个简单的菜单示例
class MenuFrame1(wx.Frame):
def __init__(self,root):
wx.Frame.__init__(self, root, -1, u"菜单", size=(300,200))
panel = wx.Panel(self, -1)
menuBar= wx.MenuBar() #添加菜单栏
menu = wx.Menu()
menuBar.Append(menu, u"文件")
menu.Append(100,u"消息框") #注册id
menu.AppendSeparator()
menu.Append(101, u"退出")
self.Bind(wx.EVT_MENU, self.OnClick, id=100)
self.Bind(wx.EVT_MENU, self.OnExit, id=101)
self.SetMenuBar(menuBar)
def OnClick(self, event):
wx.MessageBox(u"你好", u"提示")
def OnExit(self, event):
self.Close(True)
class MenuFrame2(wx.Frame):
def __init__(self, root):
wx.Frame.__init__(self, root, -1, u"菜单示例",size=(300, 200))
panel = wx.Panel(self, -1)
menu = wx.Menu()
subMenu = wx.Menu()
subMenu.AppendCheckItem(-1, u"菜单1") #可以多选
subMenu.AppendRadioItem(-1, u"菜单2") #单选标记
menu.AppendMenu(-1, u"子菜单", subMenu)
menuBar = wx.MenuBar()
menuBar.Append(menu, u"菜单")
self.SetMenuBar(menuBar)
#简单的弹出式菜单
class MenuFrame3(wx.Frame):
def __init__(self, root):
wx.Frame.__init__(self, None, -1, u"弹出式菜单", size=(300,200))
self.panel = wx.Panel(self)
self.textCtrl = wx.TextCtrl(self.panel, -1, pos=(20,20))
menuBar = wx.MenuBar()
self.SetMenuBar(menuBar)
self.popupMenu = wx.Menu()
menuList = [u"菜单1", u"菜单2", u"菜单3"]
self.panel.Bind(wx.EVT_RIGHT_DOWN, self.OnPopup)
for menu in menuList:
item = self.popupMenu.Append(-1, menu)
self.Bind(wx.EVT_MENU, self.OnItemSelect, item)
def OnPopup(self,event):
print "test1"
#pos = self.panel.ClientToScreen(event.GetPosition())
#print pos
pos = event.GetPosition() #获得点击时的坐标
#print pos
self.panel.PopupMenu(self.popupMenu, pos)
def OnItemSelect(self, event):
print "test2"
item = self.popupMenu.FindItemById(event.GetId())
#print item.GetText()
self.textCtrl.Value = item.GetText()
#快捷键
class MenuFrame4(wx.Frame):
def __init__(self, root):
wx.Frame.__init__(self, root, -1, u"菜单快捷键", size=(300,200))
panel = wx.Panel(self, -1)
menu = wx.Menu()
exitMenu = menu.Append(-1, u"&x退出")
self.Bind(wx.EVT_MENU, self.OnExit, exitMenu)
menuBar = wx.MenuBar()
menuBar.Append(menu, u"&m菜单") #这个快捷键有点问题 指定鼠标焦点
self.SetMenuBar(menuBar)
def OnExit(self,event):
self.Close(True)
#位图菜单
class MenuFrame5(wx.Frame):
def __init__(self, root):
wx.Frame.__init__(self, root, -1, u"位图菜单", size=(300,200))
panel = wx.Panel(self, -1)
menu = wx.Menu()
img = wx.Bitmap("../day20/previous.png",wx.BITMAP_TYPE_PNG)
previousItem = wx.MenuItem(menu, -1, u"前进")
previousItem.SetBitmap(img)
menu.AppendItem(previousItem)
img1 = wx.Bitmap("next.png")#在统一文件夹 下却不能显示图标? 搞不懂。。。。
#print img1
nextItem = wx.MenuItem(menu, -1, u"后退")
nextItem.SetBitmap(img1)
menu.AppendItem(nextItem)
menuBar = wx.MenuBar()
menuBar.Append(menu, u"菜单")
self.SetMenuBar(menuBar)
class MyApp(wx.App):
def OnInit(self):
#self.frame = MenuFrame1(None)
#self.frame = MenuFrame2(None)
#self.frame = MenuFrame3(None)
#self.frame = MenuFrame4(None)
self.frame = MenuFrame5(None)
self.frame.Show()
return True
app = MyApp()
app.MainLoop()
QQ交流群: 204944806