1 
   2 # Name:      LearnSizers1.py
   3 # Purpose:   A demo app to learn sizers
   4 # Author:    Jean-Michel Fauth, Switzerland
   5 # Copyright: (c) 2005 Jean-Michel Fauth
   6 # Licence:   GPL
   7 
   8 # os dev:    windows 98
   9 # py dev:    Python 2.4.1
  10 # wx dev:    wxPython 2.6.1
  11 # Revision:  27 June 2005
  12 
  13 # Contributor and minor fixes: Marcelo Barbero, Argentina
  14 # Revision: 03 August 2005
  15 
  16 # LearnSizer*.py is a small application aimed to learn the sizers and
  17 # their usage.
  18 # This application is a collection of panels. Each panel contains
  19 # a few widgets laid out with sizers. The panels are numbered
  20 # MyPanel_0 to MyPanel_n. The panel 0 is the simpliest case. The
  21 # order of the panels follows an increasing complexity in the
  22 # layout. It is warmly recommended to start with MyPanel_0.
  23 #
  24 # Do not forget:
  25 # - the wxPython doc
  26 # - the wiki page http://wiki.wxpython.org/index.cgi/UsingSizers
  27 # - dir(<instance of a sizer>) for a list of methods
  28 # - print sizer.method.__doc__
  29 #
  30 
  31 
  32 import os
  33 import sys
  34 import wx
  35 
  36 class ColWin(wx.Window):
  37     """- A wx.Window with a coloured background
  38     - pos and size == (-1, -1) since sizers are used"""
  39 
  40     def __init__(self, parent, id, BackColour):
  41         wx.Window.__init__(self, parent, id, (-1, -1), (-1, -1), wx.SIMPLE_BORDER)
  42         self.SetBackgroundColour(BackColour)
  43 
  44 
  45 class MyPanel_0(wx.Panel):
  46     """- The simpliest sizer, a ColWin
  47     - use of named arguments"""
  48 
  49     def __init__(self, parent):
  50         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
  51 
  52         wgreen = ColWin(self, wx.NewId(), wx.GREEN)
  53 
  54         b = 20
  55         vsizer1 = wx.BoxSizer(orient=wx.VERTICAL)
  56         # or
  57         # vsizer1 = wx.BoxSizer(orient=wx.HORIZONTAL)
  58         vsizer1.Add(item=wgreen, proportion=1, flag=wx.EXPAND | wx.ALL, border=b)
  59         self.SetSizer(vsizer1)
  60 
  61 
  62 class MyPanel_1(wx.Panel):
  63     """- Two ColWins, vertically"""
  64 
  65     def __init__(self, parent):
  66         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
  67 
  68         wred = ColWin(self, wx.NewId(), wx.RED)
  69         wblue = ColWin(self, wx.NewId(), wx.BLUE)
  70 
  71         b = 5
  72         vsizer1 = wx.BoxSizer(wx.VERTICAL)
  73         vsizer1.Add(wred, 1, wx.EXPAND | wx.ALL, b)
  74         vsizer1.Add(wblue, 1, wx.EXPAND | wx.ALL, b)
  75         self.SetSizer(vsizer1)
  76 
  77 
  78 class MyPanel_2(wx.Panel):
  79     """- Three ColWins, horizontally """
  80 
  81     def __init__(self, parent):
  82         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
  83 
  84         wred = ColWin(self, wx.NewId(), wx.RED)
  85         wblue = ColWin(self, wx.NewId(), wx.BLUE)
  86         wgreen = ColWin(self, wx.NewId(), wx.GREEN)
  87 
  88         b = 5
  89         hsizer1 = wx.BoxSizer(wx.HORIZONTAL)
  90         hsizer1.Add(wred, 1, wx.EXPAND | wx.ALL, b)
  91         hsizer1.Add(wblue, 1, wx.EXPAND | wx.ALL, b)
  92         hsizer1.Add(wgreen, 1, wx.EXPAND | wx.ALL, b)
  93         self.SetSizer(hsizer1)
  94 
  95 
  96 class MyPanel_3(wx.Panel):
  97     """- Three ColWins, horizontally, height ratio 1:2:3"""
  98 
  99     def __init__(self, parent):
 100         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 101 
 102         wred = ColWin(self, wx.NewId(), wx.RED)
 103         wblue = ColWin(self, wx.NewId(), wx.BLUE)
 104         wgreen = ColWin(self, wx.NewId(), wx.GREEN)
 105 
 106         b = 5
 107         hsizer1 = wx.BoxSizer(wx.HORIZONTAL)
 108         hsizer1.Add(wred, 1, wx.EXPAND | wx.ALL, b)
 109         hsizer1.Add(wblue, 2, wx.EXPAND | wx.ALL, b)
 110         hsizer1.Add(wgreen, 3, wx.EXPAND | wx.ALL, b)
 111         self.SetSizer(hsizer1)
 112 
 113 
 114 class MyPanel_4(wx.Panel):
 115     """- Two ColWins, vertically, a fixed width of 50 pixels between
 116     the two items"""
 117 
 118     def __init__(self, parent):
 119         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 120 
 121         wred = ColWin(self, wx.NewId(), wx.RED)
 122         wblue = ColWin(self, wx.NewId(), wx.BLUE)
 123 
 124         b = 5
 125         vsizer1 = wx.BoxSizer(wx.VERTICAL)
 126         vsizer1.Add(wred, 1, wx.EXPAND | wx.ALL, b)
 127         vsizer1.Add((-1, 50), 0,  wx.ALL, b)
 128         vsizer1.Add(wblue, 1, wx.EXPAND | wx.ALL, b)
 129         self.SetSizer(vsizer1)
 130 
 131 
 132 class MyPanel_5(wx.Panel):
 133     """- Two items: a ColWin and a Button, vertically
 134     - the Button is either left/right aligned or centered
 135     - comment / uncomment for testing the Button alignment
 136     - wx.ALIGN_LEFT is the default value"""
 137 
 138     def __init__(self, parent):
 139         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 140 
 141         wred = ColWin(self, wx.NewId(), wx.RED)
 142         b1 = wx.Button(self, wx.NewId(), 'button1', (-1, -1), wx.DefaultSize)
 143 
 144         b = 5
 145         vsizer1 = wx.BoxSizer(wx.VERTICAL)
 146         vsizer1.Add(wred, 1, wx.EXPAND | wx.ALL, b)
 147 
 148         #~ vsizer1.Add(b1, 0, wx.ALIGN_LEFT | wx.ALL, b)
 149         #~ vsizer1.Add(b1, 0, wx.ALIGN_RIGHT | wx.ALL, b)
 150         vsizer1.Add(b1, 0, wx.ALIGN_CENTER | wx.ALL, b)
 151         self.SetSizer(vsizer1)
 152 
 153 
 154 class MyPanel_6(wx.Panel):
 155     """- Three items: a ColWin and two Buttons
 156     - the Buttons are either left/right aligned or centered"""
 157 
 158     def __init__(self, parent):
 159         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 160 
 161         wred = ColWin(self, wx.NewId(), wx.RED)
 162         b1 = wx.Button(self, wx.NewId(), '&OK', (-1, -1), wx.DefaultSize)
 163         b2 = wx.Button(self, wx.NewId(), '&Cancel', (-1, -1), wx.DefaultSize)
 164 
 165         b = 10
 166         hsizer1 = wx.BoxSizer(wx.HORIZONTAL)
 167         hsizer1.Add(b1, 0)
 168         hsizer1.Add(b2, 0, wx.LEFT, b)
 169 
 170         b = 5
 171         vsizer1 = wx.BoxSizer(wx.VERTICAL)
 172         vsizer1.Add(wred, 1, wx.EXPAND | wx.ALL, b)
 173         vsizer1.Add(hsizer1, 0, wx.ALIGN_RIGHT | wx.ALL, b)
 174         #~ vsizer1.Add(hsizer1, 0, wx.ALIGN_CENTER | wx.ALL, b)
 175         #~ vsizer1.Add(hsizer1, 0, wx.ALIGN_LEFT | wx.ALL, b)
 176         self.SetSizer(vsizer1)
 177 
 178 
 179 class MyPanel_7(wx.Panel):
 180     """- Four items: a ColWin, two Buttons, and a StaticLine
 181     - the Buttons are either left/right aligned or centered
 182     - the height of the static line == 2, the wx.GROW flag specifies an
 183       horizontal expansion, since the StaticLine is in a vertical sizer"""
 184 
 185     def __init__(self, parent):
 186         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 187 
 188         wred = ColWin(self, wx.NewId(), wx.RED)
 189         b1 = wx.Button(self, wx.NewId(), '&OK', (-1, -1), wx.DefaultSize)
 190         b2 = wx.Button(self, wx.NewId(), '&Cancel', (-1, -1), wx.DefaultSize)
 191         staline = wx.StaticLine(self, wx.NewId(), (-1, -1), (-1, 2), wx.LI_HORIZONTAL)
 192 
 193         b = 5
 194         hsizer1 = wx.BoxSizer(wx.HORIZONTAL)
 195         hsizer1.Add(b1, 0)
 196         hsizer1.Add(b2, 0, wx.LEFT, b)
 197 
 198         vsizer1 = wx.BoxSizer(wx.VERTICAL)
 199         vsizer1.Add(wred, 1, wx.EXPAND | wx.ALL, b)
 200         vsizer1.Add(staline, 0, wx.GROW | wx.ALL, b)
 201         vsizer1.Add(hsizer1, 0, wx.ALIGN_RIGHT | wx.ALL, b)
 202         self.SetSizer(vsizer1)
 203 
 204 
 205 class MyPanel_8(wx.Panel):
 206     """- 7 items: 2 ColWins and 5 Buttons
 207     - ColWins: one is sizable, the other not
 208     - Buttons at the right of the frame
 209     - something like a toolbar at the right"""
 210 
 211     def __init__(self, parent):
 212         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 213 
 214         wred = ColWin(self, wx.NewId(), wx.RED)
 215         wwhite = ColWin(self, wx.NewId(), wx.WHITE)
 216 
 217         b1 = wx.Button(self, wx.NewId(), '1', (-1, -1), wx.DefaultSize)
 218         b2 = wx.Button(self, wx.NewId(), '2', (-1, -1), wx.DefaultSize)
 219         b3 = wx.Button(self, wx.NewId(), '3', (-1, -1), wx.DefaultSize)
 220         b4 = wx.Button(self, wx.NewId(), '4', (-1, -1), wx.DefaultSize)
 221         b5 = wx.Button(self, wx.NewId(), '5', (-1, -1), wx.DefaultSize)
 222 
 223         vsizer1 = wx.BoxSizer(wx.VERTICAL)
 224         b = 3
 225         vsizer1.Add(wred, 1, wx.EXPAND | wx.BOTTOM, b)
 226         vsizer1.Add(wwhite, 0, wx.EXPAND, b)
 227 
 228         vsizer2 = wx.BoxSizer(wx.VERTICAL)
 229         b = 5
 230         vsizer2.Add(b1, 0, wx.BOTTOM, b)
 231         vsizer2.Add(b2, 0, wx.BOTTOM, b)
 232         vsizer2.Add(b3, 0, wx.BOTTOM, b)
 233         vsizer2.Add(b4, 0, wx.BOTTOM, b)
 234         vsizer2.Add(b5, 0, wx.BOTTOM, b)
 235 
 236         hsizer1 = wx.BoxSizer(wx.HORIZONTAL)
 237         b = 10
 238         hsizer1.Add(vsizer1, 1, wx.EXPAND | wx.LEFT | wx.TOP | wx.BOTTOM, b)
 239         hsizer1.Add(vsizer2, 0, wx.EXPAND| wx.ALL, b)
 240 
 241         self.SetSizer(hsizer1)
 242 
 243 
 244 class MyPanel_9(wx.Panel):
 245     """- 7 items: 2 ColWins and 5 Buttons
 246     - the ColWins are sizable
 247     - the Buttons have a fixed height and a default width
 248     - something like a toolbar at the top"""
 249 
 250     def __init__(self, parent):
 251         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 252 
 253         wred = ColWin(self, wx.NewId(), wx.RED)
 254         wwhite = ColWin(self, wx.NewId(), wx.WHITE)
 255 
 256         h = 40
 257         b1 = wx.Button(self, wx.NewId(), '1', (-1, -1), (-1, h))
 258         b2 = wx.Button(self, wx.NewId(), '2', (-1, -1), (-1, h))
 259         b3 = wx.Button(self, wx.NewId(), '3', (-1, -1), (-1, h))
 260         b4 = wx.Button(self, wx.NewId(), '4', (-1, -1), (-1, h))
 261         b5 = wx.Button(self, wx.NewId(), '5', (-1, -1), (-1, h))
 262 
 263         hsizer1 = wx.BoxSizer(wx.HORIZONTAL)
 264         hsizer1.Add(b1, 0)
 265         hsizer1.Add(b2, 0)
 266         hsizer1.Add(b3, 0)
 267         hsizer1.Add(b4, 0)
 268         hsizer1.Add(b5, 0)
 269 
 270         b = 2
 271         hsizer2 = wx.BoxSizer(wx.HORIZONTAL)
 272         hsizer2.Add(wred, 1, wx.EXPAND | wx.RIGHT, b)
 273         hsizer2.Add(wwhite, 1, wx.EXPAND | wx.LEFT, b)
 274 
 275         b = 5
 276         vsizer1 = wx.BoxSizer(wx.VERTICAL)
 277         vsizer1.Add(hsizer1, 0, wx.EXPAND, b)
 278         vsizer1.Add(hsizer2, 1, wx.ALL | wx.EXPAND, b)
 279 
 280         self.SetSizer(vsizer1)
 281 
 282 
 283 class MyPanel_10(wx.Panel):
 284     """- Three ColWins in a StaticBoxSizer, vertically"""
 285 
 286     def __init__(self, parent):
 287         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 288 
 289         wred = ColWin(self, wx.NewId(), wx.RED)
 290         wblue = ColWin(self, wx.NewId(), wx.BLUE)
 291         wgreen = ColWin(self, wx.NewId(), wx.GREEN)
 292 
 293         b = 10  #inside the staticbox
 294         vsbsizer1 = wx.StaticBoxSizer(wx.StaticBox(self, wx.NewId(), 'StaticboxSizer with a caption'), wx.VERTICAL)
 295         vsbsizer1.Add(wred, 1, wx.EXPAND | wx.ALL, b)
 296         vsbsizer1.Add(wblue, 1, wx.EXPAND | wx.ALL, b)
 297         vsbsizer1.Add(wgreen, 1, wx.EXPAND | wx.ALL, b)
 298         self.SetSizer(vsbsizer1)
 299 
 300 
 301 class MyPanel_11(wx.Panel):
 302     """- Three ColWins in a StaticBoxSizer, vertically
 303     - the StaticBoxSizer is in a sizer to enable a border"""
 304 
 305     def __init__(self, parent):
 306         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 307 
 308         wred = ColWin(self, wx.NewId(), wx.RED)
 309         wblue = ColWin(self, wx.NewId(), wx.BLUE)
 310         wgreen = ColWin(self, wx.NewId(), wx.GREEN)
 311 
 312         b = 10  #inside the staticbox
 313         vsbsizer1 = wx.StaticBoxSizer(wx.StaticBox(self, wx.NewId(), 'StaticboxSizer with a caption'), wx.VERTICAL)
 314         vsbsizer1.Add(wred, 1, wx.EXPAND | wx.ALL, b)
 315         vsbsizer1.Add(wblue, 1, wx.EXPAND | wx.ALL, b)
 316         vsbsizer1.Add(wgreen, 1, wx.EXPAND | wx.ALL, b)
 317 
 318         b = 20
 319         hsizer1 = wx.BoxSizer(wx.HORIZONTAL)
 320         hsizer1.Add(vsbsizer1, 1, wx.EXPAND | wx.ALL, b)
 321 
 322         self.SetSizer(hsizer1)
 323 
 324 
 325 class MyPanel_12(wx.Panel):
 326     """- 5 ColWins, vertically
 327     - ColWins 2 and 4 are in StaticBoxSizer"""
 328 
 329     def __init__(self, parent):
 330         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 331 
 332         wred = ColWin(self, wx.NewId(), wx.RED)
 333         wblue = ColWin(self, wx.NewId(), wx.BLUE)
 334         wgreen = ColWin(self, wx.NewId(), wx.GREEN)
 335         wwhite = ColWin(self, wx.NewId(), wx.WHITE)
 336         wyellow = ColWin(self, wx.NewId(), wx.NamedColour('yellow'))
 337 
 338         b = 10
 339         vsbsizer1 = wx.StaticBoxSizer(wx.StaticBox(self, wx.NewId(), 'blue'), wx.VERTICAL)
 340         vsbsizer1.Add(wblue, 1, wx.EXPAND | wx.ALL, b)
 341 
 342         vsbsizer2 = wx.StaticBoxSizer(wx.StaticBox(self, wx.NewId(), 'white'), wx.VERTICAL)
 343         vsbsizer2.Add(wwhite, 1, wx.EXPAND | wx.ALL, b)
 344 
 345         b = 5
 346         vsizer1 = wx.BoxSizer(wx.VERTICAL)
 347         vsizer1.Add(wred, 1, wx.EXPAND | wx.ALL, b)
 348         vsizer1.Add(vsbsizer1, 1, wx.EXPAND | wx.ALL, b)
 349         vsizer1.Add(wgreen, 1, wx.EXPAND | wx.ALL, b)
 350         vsizer1.Add(vsbsizer2, 1, wx.EXPAND | wx.ALL, b)
 351         vsizer1.Add(wyellow, 1, wx.EXPAND | wx.ALL, b)
 352 
 353         self.SetSizer(vsizer1)
 354 
 355 
 356 class MyPanel_13(wx.Panel):
 357     """- 3 StaticBoxSizers with a ColWin in each
 358     - the StaticBoxSizers are arranged vertically"""
 359 
 360     def __init__(self, parent):
 361         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 362 
 363         wred = ColWin(self, wx.NewId(), wx.NamedColour('red'))
 364         wgreen = ColWin(self, wx.NewId(), wx.NamedColour('green'))
 365         wblue = ColWin(self, wx.NewId(), wx.NamedColour('blue'))
 366 
 367         b = 10
 368         sizer1 = wx.StaticBoxSizer(wx.StaticBox(self, wx.NewId(), 'Staticbox'), wx.VERTICAL)
 369         sizer1.Add(wred, 1, wx.EXPAND | wx.ALL, b)
 370 
 371         sizer2 = wx.StaticBoxSizer(wx.StaticBox(self, wx.NewId(), 'Staticbox'), wx.VERTICAL)
 372         sizer2.Add(wgreen, 1, wx.EXPAND | wx.ALL, b)
 373 
 374         sizer4 = wx.StaticBoxSizer(wx.StaticBox(self, wx.NewId(), 'Staticbox'), wx.VERTICAL)
 375         sizer4.Add(wblue, 1, wx.EXPAND | wx.ALL, b)
 376 
 377         #tricky: the 2nd and 3rd staticbox sizer are shifted one pixel to the
 378         #left, try with b2 = 0
 379         b1, b2 = 0, -1
 380         sizer3 = wx.BoxSizer(wx.HORIZONTAL)
 381         sizer3.Add(sizer1, 1, wx.EXPAND, b1)
 382         sizer3.Add(sizer2, 1, wx.EXPAND | wx.LEFT, b2)
 383         sizer3.Add(sizer4, 1, wx.EXPAND | wx.LEFT, b2)
 384 
 385         self.SetSizer(sizer3)
 386 
 387 
 388 class MyPanel_14(wx.Panel):
 389     """- 3 ColWins, horizontally, 2 spacers with a fixed height"""
 390 
 391     def __init__(self, parent):
 392         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 393 
 394         wred = ColWin(self, wx.NewId(), wx.RED)
 395         wblue = ColWin(self, wx.NewId(), wx.BLUE)
 396         wgreen = ColWin(self, wx.NewId(), wx.GREEN)
 397 
 398         b = 0
 399         h = 20
 400         hsizer1 = wx.BoxSizer(wx.VERTICAL)
 401         hsizer1.Add(wred, 1, wx.EXPAND | wx.ALL, b)
 402         hsizer1.Add((-1, h))
 403         hsizer1.Add(wblue, 1, wx.EXPAND | wx.ALL, b)
 404         hsizer1.Add((-1, h))
 405         hsizer1.Add(wgreen, 1, wx.EXPAND | wx.ALL, b)
 406         self.SetSizer(hsizer1)
 407 
 408 
 409 class MyPanel_15(wx.Panel):
 410     """- 4 items: a ColWin and 3 Buttons
 411     - Buttons 1 and 3 are left/right aligned, Button 2 is centered
 412     - use of spacers to set a gap between the Buttons.
 413     - better way?"""
 414 
 415     def __init__(self, parent):
 416         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 417 
 418         wgreen = ColWin(self, wx.NewId(), wx.NamedColour('green'))
 419         b1 = wx.Button(self, wx.NewId(), 'button1', (-1, -1), wx.DefaultSize)
 420         b2 = wx.Button(self, wx.NewId(), 'button2', (-1, -1), wx.DefaultSize)
 421         b3 = wx.Button(self, wx.NewId(), 'button3', (-1, -1), wx.DefaultSize)
 422 
 423         b = 0
 424         hsizer1 = wx.BoxSizer(wx.HORIZONTAL)
 425         hsizer1.Add(b1, 0, wx.ALL, b)
 426         hsizer1.Add((-1, -1), 1)
 427         hsizer1.Add(b2, 0, wx.ALL, b)
 428         hsizer1.Add((-1, -1), 1)
 429         hsizer1.Add(b3, 0, wx.ALL, b)
 430 
 431         #tip: this does not work
 432         #~ b = 0
 433         #~ hsizer1 = wx.BoxSizer(wx.HORIZONTAL)
 434         #~ hsizer1.Add(b1, 0, wx.ALIGN_LEFT, b)
 435         #~ hsizer1.Add(b2, 0, wx.ALIGN_CENTER, b)
 436         #~ hsizer1.Add(b3, 0, wx.ALIGN_RIGHT, b)
 437 
 438         b = 5
 439         vsizer2 = wx.BoxSizer(wx.VERTICAL)
 440         vsizer2.Add(wgreen, 1, wx.EXPAND | wx.ALL, b)
 441         vsizer2.Add(hsizer1, 0, wx.EXPAND | wx.ALL, b)
 442         self.SetSizer(vsizer2)
 443 
 444 
 445 class MyPanel_16(wx.Panel):
 446     """- 4 items: a ColWin, 3 Buttons
 447     - Buttons 1 and 3 are top/bottom aligned, Button 2 is centered
 448     - use of spacers to set a gap between the Buttons
 449     - better way?"""
 450 
 451     def __init__(self, parent):
 452         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 453 
 454         wgreen = ColWin(self, wx.NewId(), wx.NamedColour('green'))
 455         b1 = wx.Button(self, wx.NewId(), 'button1', (-1, -1), wx.DefaultSize)
 456         b2 = wx.Button(self, wx.NewId(), 'button2', (-1, -1), wx.DefaultSize)
 457         b3 = wx.Button(self, wx.NewId(), 'button3', (-1, -1), wx.DefaultSize)
 458 
 459         b = 0
 460         vsizer1 = wx.BoxSizer(wx.VERTICAL)
 461         vsizer1.Add(b1, 0, wx.ALL, b)
 462         vsizer1.Add((-1, -1), 1)
 463         vsizer1.Add(b2, 0, wx.ALL, b)
 464         vsizer1.Add((-1, -1), 1)
 465         vsizer1.Add(b3, 0, wx.ALL, b)
 466 
 467         b = 5
 468         hsizer2 = wx.BoxSizer(wx.HORIZONTAL)
 469         hsizer2.Add(vsizer1, 0, wx.EXPAND | wx.ALL, b)
 470         hsizer2.Add(wgreen, 1, wx.EXPAND | wx.ALL, b)
 471         self.SetSizer(hsizer2)
 472 
 473 
 474 class MyPanel_17(wx.Panel):
 475     """- An input box"""
 476     def __init__(self, parent):
 477         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 478         self.parent = parent
 479 
 480         s = 'abc' + os.linesep + 'def' + os.linesep + 'ghi'
 481         statxt = wx.StaticText(self, -1, s, (-1, -1), (-1, -1))
 482         txt = wx.TextCtrl(self, wx.NewId(), 'input', (-1, -1), (-1, -1))
 483         staline = wx.StaticLine(self, -1, (-1, -1), (-1, -1), wx.LI_HORIZONTAL)
 484 
 485         b1 = wx.Button(self, wx.NewId(), "&OK", (-1, -1), wx.DefaultSize)
 486         b2 = wx.Button(self, wx.NewId(), "&Cancel", (-1, -1), wx.DefaultSize)
 487 
 488         b = 10
 489         hsizer1 = wx.BoxSizer(wx.HORIZONTAL)
 490         hsizer1.Add(b1, 0)
 491         hsizer1.Add(b2, 0, wx.LEFT, b)
 492 
 493         b = 5
 494         vsizer1 = wx.BoxSizer(wx.VERTICAL)
 495         vsizer1.Add(statxt, 0, wx.GROW | wx.ALL, b)
 496         vsizer1.Add(txt, 0, wx.GROW | wx.ALL, b)
 497         vsizer1.Add(staline, 0, wx.GROW | wx.ALL, b)
 498         vsizer1.Add(hsizer1, 0, wx.ALIGN_RIGHT | wx.ALL, b)
 499         vsizer1.SetMinSize((300, -1))
 500         self.SetSizerAndFit(vsizer1)
 501 
 502         #the items are not sizable, once set, pass the fitted size to
 503         #the parent
 504         self.parent.SetClientSize(vsizer1.GetSize())
 505 
 506 
 507 class MyPanel_18(wx.Panel):
 508     """- A message box"""
 509 
 510     def __init__(self, parent):
 511         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 512         self.parent = parent
 513 
 514         s = 'This is a rather long message with.'
 515         s += (os.linesep + 'a lot of lines...')*20
 516 
 517         statxt = wx.StaticText(self, -1, s, (-1, -1), (-1, -1))
 518         staline = wx.StaticLine(self, -1, (-1, -1), (-1, -1), wx.LI_HORIZONTAL)
 519         b1 = wx.Button(self, wx.NewId(), "&OK", (-1, -1), wx.DefaultSize)
 520 
 521         b = 5
 522         vsizer1 = wx.BoxSizer(wx.VERTICAL)
 523         vsizer1.Add(statxt, 1, wx.EXPAND | wx.ALL, b)
 524         vsizer1.Add(staline, 0, wx.GROW | wx.ALL, b)
 525         vsizer1.Add(b1, 0, wx.ALIGN_CENTER | wx.ALL, b)
 526         vsizer1.SetMinSize((200, -1))
 527         self.SetSizerAndFit(vsizer1)
 528 
 529         self.parent.SetClientSize(vsizer1.GetSize())
 530 
 531 
 532 class MyPanel_19(wx.Panel):
 533     """- A serie of couples, StaticText-TextCtrl
 534     - Buttons ok and cancel"""
 535 
 536     def __init__(self, parent):
 537         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 538         self.parent = parent
 539 
 540         lab1 = wx.StaticText(self, -1, 'hydrogen :', (-1, -1), (-1, -1), wx.ALIGN_RIGHT)
 541         lab2 = wx.StaticText(self, -1, 'tin :', (-1, -1), (-1, -1), wx.ALIGN_RIGHT)
 542         lab3 = wx.StaticText(self, -1, 'mendelevium :', (-1, -1), (-1, -1), wx.ALIGN_RIGHT)
 543         lab4 = wx.StaticText(self, -1, 'carbon :', (-1, -1), (-1, -1), wx.ALIGN_RIGHT)
 544         txt1 = wx.TextCtrl(self, -1, '', (-1, -1), (-1, -1))
 545         txt2 = wx.TextCtrl(self, -1, '', (-1, -1), (-1, -1))
 546         txt3 = wx.TextCtrl(self, -1, '', (-1, -1), (-1, -1))
 547         txt4 = wx.TextCtrl(self, -1, '', (-1, -1), (-1, -1))
 548         b1 = wx.Button(self, wx.NewId(), '&OK', (-1, -1), wx.DefaultSize)
 549         b2 = wx.Button(self, wx.NewId(), '&Cancel', (-1, -1), wx.DefaultSize)
 550         staline = wx.StaticLine(self, wx.NewId(), (-1, -1), (-1, 2), wx.LI_HORIZONTAL)
 551 
 552         b = 5
 553         w = 100
 554         hsizer1 = wx.BoxSizer(wx.HORIZONTAL)
 555         hsizer1.Add(lab1, 0, wx.RIGHT, b)
 556         hsizer1.Add(txt1, 1, wx.GROW, b)
 557         hsizer1.SetItemMinSize(lab1, (w, -1))
 558 
 559         hsizer2 = wx.BoxSizer(wx.HORIZONTAL)
 560         hsizer2.Add(lab2, 0, wx.RIGHT, b)
 561         hsizer2.Add(txt2, 1, wx.GROW, b)
 562         hsizer2.SetItemMinSize(lab2, (w, -1))
 563 
 564         hsizer3 = wx.BoxSizer(wx.HORIZONTAL)
 565         hsizer3.Add(lab3, 0, wx.RIGHT, b)
 566         hsizer3.Add(txt3, 1, wx.GROW, b)
 567         hsizer3.SetItemMinSize(lab3, (w, -1))
 568 
 569         hsizer4 = wx.BoxSizer(wx.HORIZONTAL)
 570         hsizer4.Add(lab4, 0, wx.RIGHT, b)
 571         hsizer4.Add(txt4, 1, wx.GROW, b)
 572         hsizer4.SetItemMinSize(lab4, (w, -1))
 573 
 574         hsizer5 = wx.BoxSizer(wx.HORIZONTAL)
 575         hsizer5.Add(b1, 0)
 576         hsizer5.Add(b2, 0, wx.LEFT, 10)
 577 
 578         b = 5
 579         vsizer1 = wx.BoxSizer(wx.VERTICAL)
 580         vsizer1.Add(hsizer1, 0, wx.EXPAND | wx.ALL, b)
 581         vsizer1.Add(hsizer2, 0, wx.EXPAND | wx.ALL, b)
 582         vsizer1.Add(hsizer3, 0, wx.EXPAND | wx.ALL, b)
 583         vsizer1.Add(hsizer4, 0, wx.EXPAND | wx.ALL, b)
 584         vsizer1.Add(staline, 0, wx.GROW | wx.ALL, b)
 585         vsizer1.Add(hsizer5, 0, wx.ALIGN_RIGHT | wx.ALL, b)
 586 
 587         self.SetSizerAndFit(vsizer1)
 588         self.parent.SetClientSize(vsizer1.GetSize())
 589 
 590 
 591 class MyPanel_20(wx.Panel):
 592     """- A FlexGridSizer
 593     - 4 ColWins as cells, all sizeable"""
 594 
 595     def __init__(self, parent):
 596         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 597 
 598         wred = ColWin(self, -1, wx.RED)
 599         wblue = ColWin(self, -1, wx.BLUE)
 600         wwhite = ColWin(self, -1, wx.WHITE)
 601         wcyan = ColWin(self, -1, wx.CYAN)
 602 
 603         hgap, vgap = 0, 0
 604         nrows, ncols = 2, 2
 605         fgs = wx.FlexGridSizer(nrows, ncols, hgap, vgap)
 606 
 607         b = 5
 608         fgs.AddMany([(wred, 1, wx.EXPAND | wx.ALL, b),
 609                      (wblue, 1, wx.EXPAND | wx.ALL, b),
 610                      (wwhite, 1, wx.EXPAND | wx.ALL, b),
 611                      (wcyan, 1, wx.EXPAND | wx.ALL, b),
 612                     ])
 613 
 614         # or
 615         #~ fgs.Add(wred, 1, wx.EXPAND | wx.ALL, b)
 616         #~ fgs.Add(wblue, 1, wx.EXPAND | wx.ALL, b)
 617         #~ fgs.Add(wwhite, 1, wx.EXPAND | wx.ALL, b)
 618         #~ fgs.Add(wcyan, 1, wx.EXPAND | wx.ALL, b)
 619 
 620         #set all rows and cols sizable, try to comment / uncomment
 621         fgs.AddGrowableRow(0)
 622         fgs.AddGrowableRow(1)
 623         fgs.AddGrowableCol(0)
 624         fgs.AddGrowableCol(1)
 625 
 626         self.SetSizer(fgs)
 627 
 628 
 629 class MyPanel_21(wx.Panel):
 630     """- A FlexgridSizer with 4 cells
 631     - cell (0, 0) is a column of 3 Buttons
 632     - cell (1, 1) is a row of 3 Buttons
 633     - cell (1, 0) is empty
 634     - cell (0, 1) is a ColWin"""
 635 
 636     def __init__(self, parent):
 637         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 638 
 639         wwhite = ColWin(self, -1, wx.WHITE)
 640         b1 = wx.Button(self, -1, 'button1', (-1, -1), wx.DefaultSize)
 641         b2 = wx.Button(self, -1, 'button2', (-1, -1), wx.DefaultSize)
 642         b3 = wx.Button(self, -1, 'button3', (-1, -1), wx.DefaultSize)
 643         b4 = wx.Button(self, -1, 'button4', (-1, -1), wx.DefaultSize)
 644         b5 = wx.Button(self, -1, 'button5', (-1, -1), wx.DefaultSize)
 645         b6 = wx.Button(self, -1, 'button6', (-1, -1), wx.DefaultSize)
 646 
 647         b = 0
 648         hsizer1 = wx.BoxSizer(wx.HORIZONTAL)
 649         hsizer1.Add(b1, 0, wx.ALL, b)
 650         hsizer1.Add((-1, -1), 1)
 651         hsizer1.Add(b2, 0, wx.ALL, b)
 652         hsizer1.Add((-1, -1), 1)
 653         hsizer1.Add(b3, 0, wx.ALL, b)
 654 
 655         b = 0
 656         vsizer1 = wx.BoxSizer(wx.VERTICAL)
 657         vsizer1.Add(b4, 0, wx.ALL, b)
 658         vsizer1.Add((-1, -1), 1)
 659         vsizer1.Add(b5, 0, wx.ALL, b)
 660         vsizer1.Add((-1, -1), 1)
 661         vsizer1.Add(b6, 0, wx.ALL, b)
 662 
 663         hgap, vgap = 0, 0
 664         nrows, ncols = 2, 2
 665         fgs = wx.FlexGridSizer(nrows, ncols, hgap, vgap)
 666 
 667         b = 5
 668         fgs.AddMany([(vsizer1, 1, wx.EXPAND | wx.ALL, b),
 669                      (wwhite, 1, wx.EXPAND | wx.ALL, b),
 670                      ((-1, -1), 1, wx.EXPAND | wx.ALL, b),
 671                      (hsizer1, 1, wx.EXPAND | wx.ALL, b),
 672                     ])
 673 
 674         #really tricky ;-)
 675         fgs.AddGrowableRow(0)
 676         fgs.AddGrowableCol(1)
 677 
 678         self.SetSizer(fgs)
 679 
 680 
 681 class MyPanel_22(wx.Panel):
 682     """- A FlexGridSizer of 9 cells (3x3) with 5 ColWins in cells
 683     and 4 empty cells"""
 684 
 685     def __init__(self, parent):
 686         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 687 
 688         wwhite = ColWin(self, -1, wx.WHITE)
 689         wblue = ColWin(self, -1, wx.BLUE)
 690         wgreen = ColWin(self, -1, wx.GREEN)
 691         wcyan = ColWin(self, -1, wx.CYAN)
 692         wred = ColWin(self, -1, wx.RED)
 693 
 694         hgap, vgap = 0, 0
 695         nrows, ncols = 3, 3
 696         fgs = wx.FlexGridSizer(nrows, ncols, hgap, vgap)
 697 
 698         b = 5
 699         fgs.AddMany([(wwhite, 1, wx.EXPAND | wx.ALL, b),
 700                      ((-1, -1), 1, wx.EXPAND | wx.ALL, b),
 701                      (wblue, 1, wx.EXPAND | wx.ALL, b),
 702 
 703                      ((-1, -1), 1, wx.EXPAND | wx.ALL, b),
 704                      (wgreen, 1, wx.EXPAND | wx.ALL, b),
 705                      ((-1, -1), 1, wx.EXPAND | wx.ALL, b),
 706 
 707                      (wred, 1, wx.EXPAND | wx.ALL, b),
 708                      ((-1, -1), 1, wx.EXPAND | wx.ALL, b),
 709                      (wcyan, 1, wx.EXPAND | wx.ALL, b),
 710                     ])
 711 
 712         fgs.AddGrowableRow(0)
 713         fgs.AddGrowableRow(1)
 714         fgs.AddGrowableRow(2)
 715 
 716         fgs.AddGrowableCol(0)
 717         fgs.AddGrowableCol(1)
 718         fgs.AddGrowableCol(2)
 719 
 720         self.SetSizer(fgs)
 721 
 722 
 723 class MyPanel_23(wx.Panel):
 724     """- A FlexGridSizer of 9 cells (3x3) with 4 ColWins in cells and 5 empty cells
 725     - rows 1 and 3 have a fixed size"""
 726 
 727     def __init__(self, parent):
 728         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 729 
 730         h = 40
 731         wwhite = wx.Window(self, -1, (-1, -1), (-1, h), wx.SIMPLE_BORDER)
 732         wwhite.SetBackgroundColour(wx.WHITE)
 733         wblue = ColWin(self, -1, wx.BLUE)
 734         wgreen = ColWin(self, -1, wx.GREEN)
 735         wred = wx.Window(self, -1, (-1, -1), (-1, h), wx.SIMPLE_BORDER)
 736         wred.SetBackgroundColour(wx.RED)
 737 
 738         hgap, vgap = 0, 0
 739         nrows, ncols = 3, 3
 740         fgs = wx.FlexGridSizer(nrows, ncols, hgap, vgap)
 741 
 742         b = 5
 743         fgs.AddMany([((-1, -1), 1, wx.EXPAND | wx.ALL, b),
 744                      (wwhite, 1, wx.EXPAND | wx.ALL, b),
 745                      ((-1, -1), 1, wx.EXPAND | wx.ALL, b),
 746 
 747                      (wblue, 1, wx.EXPAND | wx.ALL, b),
 748                      ((-1, -1), 1, wx.EXPAND | wx.ALL, b),
 749                      (wgreen, 1, wx.EXPAND | wx.ALL, b),
 750 
 751                      ((-1, -1), 1, wx.EXPAND | wx.ALL, b),
 752                      (wred, 1, wx.EXPAND | wx.ALL, b),
 753                      ((-1, -1), 1, wx.EXPAND | wx.ALL, b),
 754                     ])
 755 
 756         fgs.AddGrowableRow(1)
 757 
 758         fgs.AddGrowableCol(0)
 759         fgs.AddGrowableCol(1)
 760         fgs.AddGrowableCol(2)
 761 
 762         self.SetSizer(fgs)
 763 
 764 
 765 class MyPanel_24(wx.Panel):
 766     """- This example is coming from one of my applications
 767     - in the real app, the white window is a drawing area and
 768       the five lower windows are StaticTexts with a defined
 769       font size (this is why I force a fixed height)"""
 770 
 771     def __init__(self, parent):
 772         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 773         self.parent = parent
 774 
 775         #a menu for the beauty of the demo
 776         menu1 = wx.Menu()
 777         menu1.Append(101, '&aaa')
 778         menuBar = wx.MenuBar()
 779         menuBar.Append(menu1, '&File')
 780         self.parent.SetMenuBar(menuBar)
 781 
 782         wwhite = ColWin(self, -1, wx.WHITE)
 783         wblue = ColWin(self, -1, wx.BLUE)
 784         wgreen = ColWin(self, -1, wx.GREEN)
 785         wcyan = ColWin(self, -1, wx.CYAN)
 786         wred = ColWin(self, -1, wx.RED)
 787         wcoral = ColWin(self, -1, wx.NamedColour('coral'))
 788         staline = wx.StaticLine(self, -1, (-1, -1), (-1, 2), wx.LI_HORIZONTAL)
 789 
 790         vsizer1 = wx.BoxSizer(wx.VERTICAL)
 791         b = 5
 792         vsizer1.Add(wblue, 1, wx.EXPAND | wx.BOTTOM, b)
 793         vsizer1.Add(wgreen, 1, wx.EXPAND)
 794 
 795         hsizer2 = wx.BoxSizer(wx.HORIZONTAL)
 796         b = 5
 797         minhe = 100
 798         hsizer2.Add(wcoral, 2, wx.EXPAND | wx.RIGHT, b)
 799         hsizer2.Add(wcyan, 3, wx.EXPAND | wx.RIGHT, b)
 800         hsizer2.Add(wred, 3, wx.EXPAND | wx.RIGHT, b)
 801         hsizer2.Add(vsizer1, 2, wx.EXPAND, border=b)
 802         hsizer2.SetItemMinSize(wcoral, (-1, minhe))
 803         hsizer2.SetItemMinSize(wcyan, (-1, minhe))
 804         hsizer2.SetItemMinSize(wred, (-1, minhe))
 805         hsizer2.SetItemMinSize(vsizer1, (-1, minhe))
 806 
 807         vsizer3 = wx.BoxSizer(wx.VERTICAL)
 808         b = 5
 809         vsizer3.Add(staline, 0, wx.GROW | wx.ALL, 0)
 810         vsizer3.Add(wwhite, 1, wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT, b)
 811         vsizer3.Add(hsizer2, 0, wx.EXPAND | wx.ALL, b)
 812 
 813         self.SetSizerAndFit(vsizer3)
 814 
 815 
 816 class MyPanel_25(wx.Panel):
 817     """- This shows the relaton between the font size and the size of the
 818       widgets when sizers are used"""
 819 
 820     def __init__(self, parent):
 821         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)
 822         self.parent = parent
 823 
 824         fs = 20
 825         self.SetFont(wx.Font(fs, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False))
 826 
 827 
 828         statxt1 = wx.StaticText(self, -1, 'one, two, three', (-1, -1), (-1, -1))
 829         statxt1.SetBackgroundColour(wx.WHITE)
 830         statxt2 = wx.StaticText(self, -1, 'eins, zwei, drei', (-1, -1), (-1, -1))
 831         statxt3 = wx.StaticText(self, -1, 'un, deux, trois', (-1, -1), (-1, -1))
 832         b1 = wx.Button(self, wx.NewId(), 'button1', (-1, -1), (-1, -1))
 833         b2 = wx.Button(self, wx.NewId(), 'button2', (-1, -1), (-1, -1))
 834 
 835         b = 5
 836         hsizer1 = wx.BoxSizer(wx.HORIZONTAL)
 837         hsizer1.Add(b1, 1, wx.EXPAND | wx.ALL, b)
 838         hsizer1.Add(b2, 1, wx.EXPAND | wx.ALL, b)
 839 
 840         vsizer1 = wx.BoxSizer(wx.VERTICAL)
 841         vsizer1.Add(statxt1, 0, wx.ALL, b)
 842         vsizer1.Add(statxt2, 0, wx.ALL, b)
 843         vsizer1.Add(statxt3, 0, wx.ALL, b)
 844         vsizer1.Add(hsizer1, 0, wx.ALL, b)
 845 
 846         self.SetSizerAndFit(vsizer1)
 847         self.parent.SetClientSize(vsizer1.GetSize())
 848 
 849 
 850 class TestComboBox(wx.Panel):
 851     def __init__(self, parent, id):
 852         wx.Panel.__init__(self, parent, id)
 853 
 854         sampleList = []
 855         for i in range(0, 26):
 856             sampleList.append('MyPanel_' + `i`)
 857 
 858         st = wx.StaticText(self, -1, "Select the example you want to see."
 859                          "Then click the View button.", (-1, -1))
 860 
 861         doctxt = wx.StaticText(self, -1, "")
 862         doctxt.SetLabel(MyPanel_0.__doc__)
 863         self.doctxt = doctxt
 864 
 865         # This combobox is created with a preset list of values.
 866         cb = wx.ComboBox(
 867             self, -1, "MyPanel_0", (-1, -1),
 868             (-1, -1), sampleList, wx.CB_DROPDOWN
 869             )
 870         self.cb = cb
 871 
 872         stline = wx.StaticLine(self, -1, (-1, -1), (-1, 2), wx.LI_HORIZONTAL)
 873 
 874         btnView = wx.Button(self, -1, "&View")
 875         self.Bind(wx.EVT_BUTTON, self.OnClickView, btnView)
 876 
 877         btnExit = wx.Button(self, -1, "E&xit")
 878         self.Bind(wx.EVT_BUTTON, self.OnClickExit, btnExit)
 879 
 880         b = 5
 881         vsizer1 = wx.BoxSizer(wx.VERTICAL)
 882         vsizer1.Add(st, 0, wx.EXPAND | wx.ALL, b)
 883         vsizer1.Add(cb, 0, wx.EXPAND | wx.ALL, 0)
 884         vsizer1.Add(doctxt, 0, wx.EXPAND | wx.ALL, b)
 885 
 886         hsizer1 = wx.BoxSizer(wx.HORIZONTAL)
 887         hsizer1.Add(btnView, 0)
 888         hsizer1.Add(btnExit, 0, wx.LEFT, b)
 889 
 890         vsizer2 = wx.BoxSizer(wx.VERTICAL)
 891         vsizer2.Add(vsizer1, 5, wx.EXPAND | wx.ALL, 0)
 892         vsizer2.Add(stline, 0, wx.GROW | wx.ALL, b)
 893         vsizer2.Add(hsizer1, 1, wx.ALIGN_RIGHT | wx.ALL, b)
 894         self.SetSizer(vsizer2)
 895 
 896         self.Bind(wx.EVT_COMBOBOX, self.EvtComboBox, cb)
 897 
 898     # When the user selects something, we go here.
 899     def EvtComboBox(self, evt):
 900         self.doctxt.SetLabel(eval('%s.__doc__' % self.cb.GetValue()))
 901 
 902     def OnClickView(self, evt):
 903         win = wx.Frame(self, -1, self.cb.GetValue(), size=(350, 200),
 904                   style = wx.DEFAULT_FRAME_STYLE)
 905         eval('%s(win)' % self.cb.GetValue())
 906 
 907         win.CenterOnScreen()
 908         win.Show(True)
 909 
 910     def OnClickExit(self, evt):
 911         sys.exit()
 912 
 913 
 914 
 915 class MyFrame(wx.Frame):
 916 
 917     def __init__(self, parent, id):
 918         s = __file__
 919         wx.Frame.__init__(self, parent, id, s, (0, 0), (500, 400))
 920 
 921         self.panel = eval('MyPanel_%d(self)' % panel)
 922         self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
 923 
 924     def OnCloseWindow(self, event):
 925         self.Destroy()
 926 
 927 
 928 class MyApp(wx.App):
 929 
 930     def OnInit(self):
 931         frame = wx.Frame(None, -1, __file__, (0, 0), (400, 300))
 932         frame.panel = TestComboBox(frame, -1)
 933         frame.Show(True)
 934         self.SetTopWindow(frame)
 935         return True
 936 
 937 
 938 def main():
 939     app = MyApp(False)
 940     app.MainLoop()
 941 
 942 
 943 if __name__ == "__main__" :
 944     main()

LearnSizers1 (last edited 2008-03-11 10:50:37 by localhost)