]>
Commit | Line | Data |
---|---|---|
1 | ||
2 | import wx | |
3 | ||
4 | ||
5 | class TestNotebook(wx.Notebook): | |
6 | def __init__(self, parent, ID=-1): | |
7 | wx.Notebook.__init__(self, parent, ID) | |
8 | ||
9 | # page 1 | |
10 | # just a panel with a small fixed size | |
11 | p = wx.Panel(self, size=(50,50)) | |
12 | self.AddPage(p, "page 1") | |
13 | ||
14 | # page 2 | |
15 | # a medium sized panel with manually layed out controls | |
16 | p = wx.Panel(self) | |
17 | b = wx.Button(p, -1, "a button", (20,20)) | |
18 | b = wx.Button(p, -1, "another button", (80,80)) | |
19 | b = wx.Button(p, -1, "and yet another button", (140,140)) | |
20 | b.Bind(wx.EVT_BUTTON, self.ShowBestSizes) | |
21 | self.AddPage(p, "page 2") | |
22 | ||
23 | # page 3 | |
24 | # a larger panel with lots of controls in a sizer. | |
25 | text = "one two buckle my shoe three four shut the door "\ | |
26 | "five six pick up sticks seven eight lay them straight "\ | |
27 | "nine ten big fat hen" | |
28 | p = wx.Panel(self) | |
29 | fgs = wx.FlexGridSizer(cols=4, vgap=5, hgap=5) | |
30 | for word in text.split(): | |
31 | label = wx.StaticText(p, -1, word+":") | |
32 | tc = wx.TextCtrl(p, -1, "", size=(120,-1)) | |
33 | fgs.Add(label, flag=wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT, border=10) | |
34 | fgs.Add(tc, flag=wx.RIGHT, border=10) | |
35 | box = wx.BoxSizer() | |
36 | box.Add(fgs, 1, wx.EXPAND|wx.ALL, 10) | |
37 | p.SetSizer(box) | |
38 | self.AddPage(p, "page 3") | |
39 | ||
40 | ||
41 | # show the best size of each page | |
42 | def ShowBestSizes(self, evt): | |
43 | for num in range(self.GetPageCount()): | |
44 | page = self.GetPage(num) | |
45 | print page.GetBestSize() | |
46 | ||
47 | ||
48 | if __name__ == '__main__': | |
49 | app = wx.PySimpleApp() | |
50 | f = wx.Frame(None, -1, "Notebook Test") | |
51 | nb = TestNotebook(f) | |
52 | s = wx.BoxSizer() | |
53 | s.Add(nb) # notebook is added directly to the sizer | |
54 | f.SetSizer(s) | |
55 | s.Fit(f) # sizer calculates layout to set frame size | |
56 | f.Show() | |
57 | app.MainLoop() | |
58 |