class MainWindow(wx.Frame): def __init__(self, parent, title): wx.Frame.__init__(self,parent, title=title, size=(200,100)) ... menuItem = filemenu.Append(wx.ID_ABOUT, "&About"," Information about this program") self.Bind(wx.EVT_MENU, self.OnAbout, menuItem)
This means that, from now on, when the user selects the "About" menu item, the method self.OnAbout will be executed. wx.EVT_MENU is the "select menu item" event. wxWidgets understands many other events (see the full list). The self.OnAbout method has the general declaration:
这是说,从现在开始,当用户选择了"About"按钮,self.OnAbout方法被执行。wx.EVT_MENU代表“选择按钮”事件。wxWidgets明白很多事件处理。
这个方法用下边的形式表现:
def OnAbout(self, event): ...
这里的event是wx.Event的实例。比如一个按钮单击事件-wx.EVT-BUTTON就是一个wx.Event的实例。
def OnButtonClick(self, event): if (some_condition): do_something() else: event.Skip() def OnEvent(self, event):
''' Created on 2012-6-29 @author: Administrator ''' import wx class MyFrame(wx.Frame): def __init__(self,parent,title): wx.Frame.__init__(self,parent,title=title,size=(500,250)) self.contrl = wx.TextCtrl(self,style=wx.TE_MULTILINE) self.CreateStatusBar() filemenu = wx.Menu() menuAbout=filemenu.Append(wx.ID_ABOUT,"&About","about this program") filemenu.AppendSeparator() menuExit=filemenu.Append(wx.ID_EXIT,"E&xit","Close program") menuBar = wx.MenuBar() menuBar.Append(filemenu,"&File") self.Bind(wx.EVT_MENU, self.OnAbout,menuAbout) self.Bind(wx.EVT_MENU, self.OnExit,menuExit) self.SetMenuBar(menuBar) self.Show(True) def OnAbout(self,e): dlg = wx.MessageDialog(self,"A small editor","about simple editor",wx.OK) dlg.ShowModal() dlg.Destroy() def OnExit(self,e): self.Close(True) app = wx.App(False) frame = MyFrame(None,"Small Editor") app.MainLoop()