By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
443,818 Members | 1,223 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 443,818 IT Pros & Developers. It's quick & easy.

Refreshing GridBagSizer

P: n/a

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-Gri...html#a13917194
Sent from the Python - python-list mailing list archive at Nabble.com.

Nov 23 '07 #1
Share this Question
Share on Google+
1 Reply


P: n/a
On Nov 23, 12:48 pm, Steve S <stevesha...@hotmail.comwrote:
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-Gri...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....zer-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
Nov 24 '07 #2

This discussion thread is closed

Replies have been disabled for this discussion.