Type PySizer
object --+
|
Object --+
|
Sizer --+
|
PySizer
- Known Subclasses:
-
PyGridSizer,
RowColSizer
wx.PySizer is a special version of wx.Sizer that has been
instrumented to allow the C++ virtual methods to be overloaded in
Python derived classes. You would derive from this class if you are
wanting to implement a custom sizer in Python code. Simply implement
CalcMin and RecalcSizes in the derived class and you're all set.
For example:
class MySizer(wx.PySizer):
def __init__(self):
wx.PySizer.__init__(self)
def CalcMin(self):
for item in self.GetChildren():
# calculate the total minimum width and height needed
# by all items in the sizer according to this sizer's
# layout algorithm.
...
return wx.Size(width, height)
def RecalcSizes(self):
# find the space allotted to this sizer
pos = self.GetPosition()
size = self.GetSize()
for item in self.GetChildren():
# Recalculate (if necessary) the position and size of
# each item and then call item.SetDimension to do the
# actual positioning and sizing of the items within the
# space alloted to this sizer.
...
item.SetDimension(itemPos, itemSize)
When Layout is called it first calls CalcMin followed by
RecalcSizes so you can optimize a bit by saving the results of
CalcMin and reusing them in RecalcSizes.
See Also:
wx.SizerItem, wx.Sizer.GetChildren
| Method Summary |
| PySizer |
__init__(self)
Creates a wx.PySizer. |
| Property Summary |
| |
thisown: The membership flag |
__init__(self)
(Constructor)
Creates a wx.PySizer. Must be called from the __init__ in the derived
class.
-
- Returns:
-
PySizer
- Overrides:
wx.Sizer.__init__
|
thisown
The membership flag
-
|