http://stackoverflow.com/questions/8771150/wxpython-multiple-panels
import wx class RandomPanel(wx.Panel): def __init__(self, parent, color): wx.Panel.__init__(self, parent) self.SetBackgroundColour(color) class MainPanel(wx.Panel): def __init__(self, parent): wx.Panel.__init__(self, parent) topSplitter = wx.SplitterWindow(self) hSplitter = wx.SplitterWindow(topSplitter) panelOne = RandomPanel(hSplitter, "blue") panelTwo = RandomPanel(hSplitter, "red") hSplitter.SplitVertically(panelOne, panelTwo) hSplitter.SetSashGravity(0.5) panelThree = RandomPanel(topSplitter, "green") topSplitter.SplitHorizontally(hSplitter, panelThree) topSplitter.SetSashGravity(0.5) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(topSplitter, 1, wx.EXPAND) self.SetSizer(sizer) class MainFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, title="Nested Splitters", size=(800,600)) panel = MainPanel(self) self.Show() if __name__ == "__main__": app = wx.App(False) frame = MainFrame() app.MainLoop()