, wx.Sizer.AddStretchSpacer(), . http://wxpython.org/docs/api/wx.Sizer-class.html#AddStretchSpacer
, StretchSpacers, -, wx.GridBagSizer
sizer.Add(description, (i*3, 0), (1, 3))
sizer.Add(question, (i*3+1, 0), flag=wx.EXPAND)
sizer.AddStretchSpacer((i*3+1,1))
sizer.Add(yes, (i*3+1, 2), flag=wx.ALIGN_RIGHT)
sizer.Add(no, (i*3+1, 3))
, "" . , . , , "" ( 0!). , "" . , , , soltuion.
wx.BoxSizer . ( , ). , @Mike Discoll, wx.BoxSizers
class MyDialog(wx.Dialog):
def __init__(self, *args, **kwargs):
wx.Dialog.__init__(self, *args, **kwargs)
sizer = wx.BoxSizer(wx.VERTICAL)
for i in range(5):
description = wx.StaticText(self, -1, "This is a long description \
that may span several lines. Filler filler filler filler filler. More filler \
filler filler filler filler.")
description.Wrap(500)
questionSizer = wx.BoxSizer(wx.HORIZONTAL)
question = wx.StaticText(self, -1, "Are you sure?")
yes = wx.RadioButton(self, -1, "Yes", style = wx.RB_GROUP)
no = wx.RadioButton(self, -1, "No")
sizer.Add(description)
questionSizer.Add(question)
questionSizer.AddStretchSpacer()
questionSizer.Add(yes)
questionSizer.Add(no)
sizer.Add(questionSizer, flag=wx.EXPAND)
self.SetSizerAndFit(sizer)
self.Show()
, , :

, questionSizer wx.EXPAND, , . sizer.Add() wx.EXPAND, (.. ). wx.Expand sizer (, - , , 500 )
, , .
--- EDIT ---
, ( 500 ), - self.SetSizerAndFit() :

, , sizer, minium.
[...]
width = 500
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.SetMinSize((width,1))
"""NOTE: the minimum size gets recalculated when new items are added.
i.e. if height exceeds 1 pixel or if width exceeds wdith, the sizer
will recalculate the minimum size"""
for i in range(5):
description = wx.StaticText(self, -1, "Short Description")
description.Wrap(width)
[...]
:
