import wx
class MyPanel(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent,
                          style=wx.FULL_REPAINT_ON_RESIZE|wx.TAB_TRAVERSAL)
        
        verbose = 'SOMETHING REALLY BIG AND LONG AND EVEN LONGER AND LONGER STILL LONGER WHEW'
        self.st = wx.StaticText(self, -1, verbose, style=wx.ALIGN_CENTER)
        self.tc1 = wx.TextCtrl(self, -1, style=wx.TE_MULTILINE)
        self.tc2 = wx.TextCtrl(self, -1, style=wx.TE_MULTILINE)

        msizer = wx.BoxSizer(wx.VERTICAL)
        msizer.Add(self.st, 0, wx.ALIGN_CENTER_VERTICAL|wx.EXPAND|wx.ALL, 5)

        sz = wx.GridBagSizer(2, 2)
        sz.Add(self.tc1, (0, 0), (1, 1), wx.EXPAND)
        sz.Add(self.tc2,  (0, 1), (1, 1), wx.EXPAND)
        sz.AddGrowableCol(0, 0)
        sz.AddGrowableCol(1, 0)
        
        msizer.Add(sz, 1, wx.EXPAND)
        self.SetSizerAndFit(msizer)

class MyFrame(wx.Frame):
    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent, title=title, size=(800,360))
        self.panel = MyPanel(self)
#        self.Bind(wx.EVT_SIZE, self.set_layout, self)
        self.Show(True)
        
    def set_layout(self, event=None):
        self.Freeze()
        self.panel.Layout()
        self.Layout()
        self.Update()
        self.Refresh()
        self.Thaw()
        event.Skip()

       
# make wxPython Widget Inspection Tool available via Ctrl-Alt-I
from wx.lib.mixins import inspection
app = inspection.InspectableApp(0)
wx.lib.inspection._InspectionHighlighter.highlightTime = 15000  # msec
 
frame = MyFrame(None, 'Sizer Purgatory')
app.MainLoop()
