Refreshing GridBagSizer

kyosohma at gmail.com kyosohma at gmail.com
Sat Nov 24 14:21:02 EST 2007


On Nov 23, 12:48 pm, Steve S <stevesha... at hotmail.com> wrote:
> Hey guys,
>
> I'm stuck with using a GridBagSizer (wxPython) in a GUI Dialog and am having
> a frustrating time with refreshing it properly.
>
> Essentially, I've got to refresh the contents of the GridBagSizer on
> occasion with new values.  The way I'm doing it works 4 times out of 5 but
> on the 5th, *all* of the grid objects that are set to various positions in
> the GBS are set to (0,0) :|
>
> So, the way I refresh it is that I keep a record of all grid objects
> inserted into the GridBagSizer and on refresh, I first iterate through that
> list and destroy everything in it.  I then call Clear() and then Layout()
> and start adding new grid objects.
> i.e. I do this:
> for obj in self.gridObjects:
>     obj.Destroy()
> self.gridObjects = []
> self.gbs.Clear()
> self.gbs.Layout
> // Add all new gridObjects, recording them in self.gridObjects
>
> Again, this works most all the time *except* that sometimes all newly added
> grid objects will end up at (0,0) in the GBS :|
>
> Am I refreshing it correctly?  Has anybody experienced a similar issue?
>
> I appreciate any help :)
> Steve
> --
> View this message in context:http://www.nabble.com/Refreshing-GridBagSizer-tf4863314.html#a13917194
> Sent from the Python - python-list mailing list archive at Nabble.com.

You'll probably do better if you email the wxPython user's group for
these kinds of things. But I'll take a shot at it anyway.

Looking at the GridBagSizer's docs, I found it has the following
method: CheckForIntersection. You could use that to make sure there
are no intersections and then handle it when they occur.

See the docs for more info:

http://www.wxpython.org/docs/api/wx.GridBagSizer-class.html

The mailing list is here:

http://wxpython.org/maillist.php

Without knowing what your layout scheme is or how you add the widgets
to the sizer, it's difficult to give a more specific answer. Since you
say it's a dialog, you might want to consider using a simpler sizer or
a group of simpler sizers nested in one another. There's an entry on
the wiki that might be helpful to you as well.

http://wiki.wxpython.org/UsingSizers

Hope that helps.

Mike



More information about the Python-list mailing list