I am using a Flexgridsizer that contains a mix of statictexts and buttons within it.  My flexgridsizer contains 1 column of statictext that never changes, 3 columns that update constantly (sometimes a tenth of a second) and the last column has all buttons that remain the same -- I have about 12 rows.  
When I push "go" on my code, the three statictext columns update constantly.  I do this by self.text1.SetLabel('newtext').  This works great.  However, I initially set up the gridsizer so the statictext is centered.  Therefore, when i run my code, after updating each cell, i run self.panel.Layout().  This helps get my columns centered again.
The problem with this is that since I do so much updating, it causes my buttons in the last column to look like they are moving left and right (since it appears to be resetting the layout of the buttons).  I want the buttons to "stay still".  To fix this, I removed the self.panel.Layout() BUT this now makes all my text be right-justified.  
Is there any way to apply the Layout() to just specific columns of the gridsizer?  I really need to keep the gridsizer if possible.  I have also seen the "noautoresize" but one of my columns experiences texts of different lengths at each update.  
Any thoughts?  Thanks!
Try setting the StaticText size to something specific, like (100, -1). That way it should stay the same unless you happen to apply a string that's greater than the size you set. I'm not sure what happens then, but probably it would get truncated. However, if you're updating it so fast that you can't read it to begin with, I don't think this will be an issue.
wxpython update wx.statictext inside wx.gridsizer