]> git.saurik.com Git - wxWidgets.git/blob - wxPython/samples/wxPIA_book/Chapter-11/boxsizer.py
prevent disappearing menus in tabmdi
[wxWidgets.git] / wxPython / samples / wxPIA_book / Chapter-11 / boxsizer.py
1 import wx
2 from blockwindow import BlockWindow
3
4 labels = "one two three four".split()
5
6 class TestFrame(wx.Frame):
7 title = "none"
8 def __init__(self):
9 wx.Frame.__init__(self, None, -1, self.title)
10 sizer = self.CreateSizerAndWindows()
11 self.SetSizer(sizer)
12 self.Fit()
13
14 class VBoxSizerFrame(TestFrame):
15 title = "Vertical BoxSizer"
16
17 def CreateSizerAndWindows(self):
18 sizer = wx.BoxSizer(wx.VERTICAL)
19 for label in labels:
20 bw = BlockWindow(self, label=label, size=(200,30))
21 sizer.Add(bw, flag=wx.EXPAND)
22 return sizer
23
24
25 class HBoxSizerFrame(TestFrame):
26 title = "Horizontal BoxSizer"
27
28 def CreateSizerAndWindows(self):
29 sizer = wx.BoxSizer(wx.HORIZONTAL)
30 for label in labels:
31 bw = BlockWindow(self, label=label, size=(75,30))
32 sizer.Add(bw, flag=wx.EXPAND)
33 return sizer
34
35 class VBoxSizerStretchableFrame(TestFrame):
36 title = "Stretchable BoxSizer"
37
38 def CreateSizerAndWindows(self):
39 sizer = wx.BoxSizer(wx.VERTICAL)
40 for label in labels:
41 bw = BlockWindow(self, label=label, size=(200,30))
42 sizer.Add(bw, flag=wx.EXPAND)
43
44 # Add an item that takes all the free space
45 bw = BlockWindow(self, label="gets all free space", size=(200,30))
46 sizer.Add(bw, 1, flag=wx.EXPAND)
47 return sizer
48
49 class VBoxSizerMultiProportionalFrame(TestFrame):
50 title = "Proportional BoxSizer"
51
52 def CreateSizerAndWindows(self):
53 sizer = wx.BoxSizer(wx.VERTICAL)
54 for label in labels:
55 bw = BlockWindow(self, label=label, size=(200,30))
56 sizer.Add(bw, flag=wx.EXPAND)
57
58 # Add an item that takes one share of the free space
59 bw = BlockWindow(self,
60 label="gets 1/3 of the free space",
61 size=(200,30))
62 sizer.Add(bw, 1, flag=wx.EXPAND)
63
64 # Add an item that takes 2 shares of the free space
65 bw = BlockWindow(self,
66 label="gets 2/3 of the free space",
67 size=(200,30))
68 sizer.Add(bw, 2, flag=wx.EXPAND)
69 return sizer
70
71 app = wx.PySimpleApp()
72 frameList = [VBoxSizerFrame, HBoxSizerFrame,
73 VBoxSizerStretchableFrame,
74 VBoxSizerMultiProportionalFrame]
75 for klass in frameList:
76 frame = klass()
77 frame.Show()
78 app.MainLoop()