I was looking for an up-to-date way of coding with wxPython 2.5.3.x for MacOS X. Here is what I came up with based on stuff I read on the net (this website and others) and looking at the source code to the demo application. Sadly, a lot of the existing documentation uses the old style of importing the wx package so it is confusing to newbie's at first. In addition, this is the one place where I have found a single reference to easily creating the About/Exit documentation for creating the proper responses on the Mac. You may want to view the Migration guide for more information.
import wx class MainWindow(wx.Frame): def __init__(self,parent,id,title): wx.Frame.__init__(self,parent,wx.ID_ANY, title, size = (1024,768), style=wx.DEFAULT_FRAME_STYLE| wx.NO_FULL_REPAINT_ON_RESIZE) self.control = wx.TextCtrl(self, 1, style=wx.TE_MULTILINE) self.CreateStatusBar() # A Statusbar in the bottom of the window # Creating the menubar. menuBar = wx.MenuBar() # Setting up the file menu. filemenu = wx.Menu() item = filemenu.Append(-1,'E&xit','Terminate the program') self.Bind(wx.EVT_MENU, self.OnExit, item) if wx.Platform=="__WXMAC__": wx.App.SetMacExitMenuItemId(item.GetId()) menuBar.Append(filemenu,'&File') # Adding the "filemenu" to the MenuBar # Setting up the help menu. helpmenu = wx.Menu() item = helpmenu.Append(-1, '&About\tCtrl-H','Information about this program') self.Bind(wx.EVT_MENU, self.OnAbout, item) if wx.Platform=="__WXMAC__": wx.App.SetMacAboutMenuItemId(item.GetId()) menuBar.Append(helpmenu,'&Help') # Adding the "helpmenu" to the MenuBar self.SetMenuBar(menuBar) # Adding the MenuBar to the Frame content. def OnAbout(self,e): d = wx.MessageDialog(self, " A sample editor \n" " in wxPython","About Sample Editor", wx.OK) # Create a message dialog box d.ShowModal() # Shows it d.Destroy() # finally destroy it when finished. def OnExit(self,e): self.Close(True) # Close the frame. class app(wx.App): def OnInit(self): frame = MainWindow(None, -1, "Small editor") self.SetTopWindow(frame) frame.Show() return 1 if __name__ == "__main__": app = app(0) app.MainLoop()