]> git.saurik.com Git - wxWidgets.git/blame - wxPython/samples/simple/simple.py
Add a grid sizer demo, and document the props accepted by SetSizerProps.
[wxWidgets.git] / wxPython / samples / simple / simple.py
CommitLineData
05a03b01 1#----------------------------------------------------------------------
15dd1136
RD
2# A very simple wxPython example. Just a wx.Frame, wx.Panel,
3# wx.StaticText, wx.Button, and a wx.BoxSizer, but it shows the basic
05a03b01
RD
4# structure of any wxPython application.
5#----------------------------------------------------------------------
6
7import wx
8
9
10class MyFrame(wx.Frame):
11 """
12 This is MyFrame. It just shows a few controls on a wxPanel,
13 and has a simple menu.
14 """
15 def __init__(self, parent, title):
90805926
RD
16 wx.Frame.__init__(self, parent, -1, title,
17 pos=(150, 150), size=(350, 200))
05a03b01
RD
18
19 # Create the menubar
20 menuBar = wx.MenuBar()
21
22 # and a menu
23 menu = wx.Menu()
24
25 # add an item to the menu, using \tKeyName automatically
26 # creates an accelerator, the third param is some help text
27 # that will show up in the statusbar
28 menu.Append(wx.ID_EXIT, "E&xit\tAlt-X", "Exit this simple sample")
29
30 # bind the menu event to an event handler
31 self.Bind(wx.EVT_MENU, self.OnTimeToClose, id=wx.ID_EXIT)
32
33 # and put the menu on the menubar
34 menuBar.Append(menu, "&File")
35 self.SetMenuBar(menuBar)
36
37 self.CreateStatusBar()
38
39
40 # Now create the Panel to put the other controls on.
41 panel = wx.Panel(self)
42
43 # and a few controls
44 text = wx.StaticText(panel, -1, "Hello World!")
45 text.SetFont(wx.Font(14, wx.SWISS, wx.NORMAL, wx.BOLD))
46 text.SetSize(text.GetBestSize())
47 btn = wx.Button(panel, -1, "Close")
48 funbtn = wx.Button(panel, -1, "Just for fun...")
49
50 # bind the button events to handlers
51 self.Bind(wx.EVT_BUTTON, self.OnTimeToClose, btn)
52 self.Bind(wx.EVT_BUTTON, self.OnFunButton, funbtn)
53
54 # Use a sizer to layout the controls, stacked vertically and with
55 # a 10 pixel border around each
56 sizer = wx.BoxSizer(wx.VERTICAL)
57 sizer.Add(text, 0, wx.ALL, 10)
58 sizer.Add(btn, 0, wx.ALL, 10)
59 sizer.Add(funbtn, 0, wx.ALL, 10)
60 panel.SetSizer(sizer)
61 panel.Layout()
62
63
64 def OnTimeToClose(self, evt):
65 """Event handler for the button click."""
66 print "See ya later!"
67 self.Close()
68
69 def OnFunButton(self, evt):
70 """Event handler for the button click."""
71 print "Having fun yet?"
72
73
90805926
RD
74class MyApp(wx.App):
75 def OnInit(self):
76 frame = MyFrame(None, "Simple wxPython App")
90805926 77 self.SetTopWindow(frame)
a3f4cbd6 78
15dd1136 79 print "Print statements go to this stdout window by default."
a3f4cbd6
RD
80
81 frame.Show(True)
90805926
RD
82 return True
83
a3f4cbd6 84app = MyApp(redirect=True)
05a03b01
RD
85app.MainLoop()
86