Baffled by sizers.

Try this, use this panel in LearnSizers.py.
It should not be too far from your wish.

Jean-Michel Fauth, Switzerland

#based on MyPanel_15 where the central button has been replaced by
#an horizontal sizer conaining two buttons.
class MyPanel_aaa(wx.Panel):

     def __init__(self, parent):
         wx.Panel.__init__(self, parent, -1, wx.DefaultPosition, wx.DefaultSize)

         wgreen = ColWin(self, wx.NewId(), wx.NamedColour('green'))
         b1 = wx.Button(self, wx.NewId(), 'button1', (-1, -1), wx.DefaultSize)
         b2 = wx.Button(self, wx.NewId(), 'button2', (-1, -1), wx.DefaultSize)
         b3 = wx.Button(self, wx.NewId(), 'button3', (-1, -1), wx.DefaultSize)
         b4 = wx.Button(self, wx.NewId(), 'button4', (-1, -1), wx.DefaultSize)

         b = 0
         hsizer1a = wx.BoxSizer(wx.HORIZONTAL)
         hsizer1a.Add(b2, 0, wx.ALL, b)
         hsizer1a.Add(b3, 0, wx.ALL, b)

         b = 0
         hsizer1 = wx.BoxSizer(wx.HORIZONTAL)
         hsizer1.Add(b1, 0, wx.ALL, b)
         hsizer1.Add((-1, -1), 1)
         hsizer1.Add(hsizer1a, 0, wx.ALL, b)
         hsizer1.Add((-1, -1), 1)
         hsizer1.Add(b4, 0, wx.ALL, b)

         b = 0
         hsizer1b = wx.BoxSizer(wx.HORIZONTAL)
         hsizer1b.Add((-1, -1), 1)
         hsizer1b.Add(wgreen, 1, wx.EXPAND | wx.ALL, b)
         hsizer1b.Add((-1, -1), 1)

         b = 5
         vsizer2 = wx.BoxSizer(wx.VERTICAL)
         vsizer2.Add(hsizer1, 0, wx.EXPAND | wx.ALL, b)
         vsizer2.Add(hsizer1b, 1, wx.EXPAND | wx.ALL, b)
         self.SetSizer(vsizer2)