- # using a wx.Frame, wx.MenuBar, wx.Menu, wx.Panel, wx.StaticText, wx.Button,  
- # and a wx.BoxSizer to show a rudimentary wxPython Windows GUI application 
- # wxPython package from: http://prdownloads.sourceforge.net/wxpython/ 
- # I downloaded: wxPython2.5-win32-ansi-2.5.3.1-py23.exe 
- # if you have not already done so install the Python compiler first 
- # I used  Python-2.3.4.exe  (the Windows installer package for Python23)  
- # from http://www.python.org/2.3.4/ 
- # tested with Python23      vegaseat      24jan2005 
- import wx 
- class Frame1(wx.Frame): 
-     # create a simple windows frame (sometimes called form) 
-     # pos=(ulcX,ulcY)  size=(width,height) in pixels 
-     def __init__(self, parent, title): 
-         wx.Frame.__init__(self, parent, -1, title, pos=(150, 150), size=(350, 250)) 
-         # create a menubar at the top of the user frame 
-         menuBar = wx.MenuBar() 
-         # create a menu ...  
-         menu = wx.Menu() 
-         # ... add an item to the menu 
-         # \tAlt-X creates an accelerator for Exit (Alt + x keys) 
-         # the third parameter is an optional hint that shows up in  
-         # the statusbar when the cursor moves across this menu item 
-         menu.Append(wx.ID_EXIT, "E&xit\tAlt-X", "Exit the program") 
-         # bind the menu event to an event handler, share QuitBtn event 
-         self.Bind(wx.EVT_MENU, self.OnQuitButton, id=wx.ID_EXIT) 
-         # put the menu on the menubar 
-         menuBar.Append(menu, "&File") 
-         self.SetMenuBar(menuBar) 
-         # create a status bar at the bottom of the frame 
-         self.CreateStatusBar() 
-         # now create a panel (between menubar and statusbar) ... 
-         panel = wx.Panel(self) 
-         # ... put some controls on the panel 
-         text = wx.StaticText(panel, -1, "Hello World!") 
-         text.SetFont(wx.Font(24, wx.SCRIPT, wx.NORMAL, wx.BOLD)) 
-         text.SetSize(text.GetBestSize()) 
-         quitBtn = wx.Button(panel, -1, "Quit") 
-         messBtn = wx.Button(panel, -1, "Message") 
-         # bind the button events to event handlers 
-         self.Bind(wx.EVT_BUTTON, self.OnQuitButton, quitBtn) 
-         self.Bind(wx.EVT_BUTTON, self.OnMessButton, messBtn) 
-         # use a sizer to layout the controls, stacked vertically 
-         # with a 10 pixel border around each 
-         sizer = wx.BoxSizer(wx.VERTICAL) 
-         sizer.Add(text, 0, wx.ALL, 10) 
-         sizer.Add(quitBtn, 0, wx.ALL, 10) 
-         sizer.Add(messBtn, 0, wx.ALL, 10) 
-         panel.SetSizer(sizer) 
-         panel.Layout() 
-     def OnQuitButton(self, evt): 
-         # event handler for the Quit button click or Exit menu item 
-         print "See you later alligator! (goes to stdout window)" 
-         wx.Sleep(1)    # 1 second to look at message 
-         self.Close() 
-     def OnMessButton(self, evt): 
-         # event handler for the Message button click 
-         self.SetStatusText('101 Different Ways to Spell "Spam"') 
- class wxPyApp(wx.App): 
-     def OnInit(self): 
-         # set the title too 
-         frame = Frame1(None, "wxPython GUI 2") 
-         self.SetTopWindow(frame) 
-         frame.Show(True) 
-         return True 
-          
- # get it going ... 
- app = wxPyApp(redirect=True) 
- app.MainLoop() 
- #//python/5728