[wxpython] StaticBoxSizer problems
Steve Holden
steve at holdenweb.com
Thu Mar 9 02:42:03 EST 2006
Matthias Kluwe wrote:
> Hi!
>
> I'd like to place several StaticBoxes in a frame, but I can't get it
> right.
>
> Consider the following code:
>
> import wx
>
> app = wx.PySimpleApp()
> frame = wx.Frame(parent=None, title="Test")
> box = wx.BoxSizer(wx.VERTICAL)
> frame.SetSizer(box)
> upper_box = wx.StaticBox(parent=frame, label="Upper Box")
> box.Add(item=upper_box, flag=wx.GROW)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
You should remiove this line.
> upper_sizer = wx.StaticBoxSizer(upper_box)
> upper_sizer.Add(wx.Button(parent=frame, label="Button"))
> frame.Show()
> app.MainLoop()
>
> This should show a frame containing a StaticBox which contains a
> button, but: The button is not placed within the StaticBox. Hmm.
>
> Additionally: wx.StaticBoxSizer.__init__.__doc__ says that a
> StaticBoxSizer is created by __init__(self, StaticBox box, int
> orient=HORIZONTAL). But if I change the line
>
> upper_sizer = wx.StaticBoxSizer(upper_box)
>
> to
>
> upper_sizer = wx.StaticBoxSizer(StaticBox=upper_box)
>
> I get the error: TypeError: new_StaticBoxSizer() takes at least 1
> argument (0 given).
>
> What am I missing?
>
Generally speaking what you appear to be missing is a methodical
approach to GUI consruction. This reminds me of a lot of my early
experiments with wxPython code :-)
Less is more, but it *does* take a while to get the hang of sizers and
the like.
regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC/Ltd www.holdenweb.com
Love me, love my blog holdenweb.blogspot.com
More information about the Python-list
mailing list