wxPython: Looping over all children of a sizer

Piet pit.grinja at gmx.de
Thu May 20 04:38:44 EDT 2004


Hello,
I need some help with the design of a "dynamic" wxDialog.
The dialog window is divided into several sizers, the first contains a
wxComboBox. When choosing an entry from this wxComboBox, a second
sizer (RowColSizer) will be populated with some controls, the number
and type of which will depend on the selected ComboBox-Entry. That
works fine for the first selection: The wxDialog is enlarged to give
room for the new controls. But when I make another selection, I get an
error saying that some positions in the sizer are populated twice. It
is obvious that the sizer has to be cleared before I put in the new
controls. I checked the documentation and found the Remove-Method for
sizers. Unfortunately, this method seems only to be able to remove a
sizer completely (which is not want I want, because the sizer will be
repopulated in the next step, and I dont want to recreate it, because
the sizer has to keep its position in the dialog relative to the other
sizers) or to remove the item with the specified position (which is no
alternative as well, because the number of childs or controls in the
sizer will vary).
Now my question: is there a clearall-Method for sizers that removes
all the items in the sizer or is there a function to get the number of
childs in the sizer so that I could write something like
for i in range(sizer.GetNumberOfChildren()):
    sizer.Remove(i)

That would help me a lot.
Thanks in advance
Piet



More information about the Python-list mailing list