import os import sys import wx class Panel1(wx.Panel) : def __init__(self, parent, *args, **kwargs) : wx.Panel.__init__(self, parent, wx.ID_ANY) b1a = self.SetButton("Button1-A") b1b = self.SetButton("Button1-B") layout = wx.BoxSizer(wx.VERTICAL) layout.Add(b1a, 2, flag=wx.EXPAND) layout.Add(b1b, 1, flag=wx.EXPAND) self.SetSizer(layout) def SetButton(self, Name) : return wx.Button(self, wx.ID_ANY, Name) class Panel2(wx.Panel) : def __init__(self, parent, *args, **kwargs) : wx.Panel.__init__(self, parent, wx.ID_ANY) b2a = self.SetButton("Button2-A") b2b = self.SetButton("Button2-B") b2c = self.SetButton("Button2-C") bp1 = Panel1(self) layout = wx.BoxSizer(wx.VERTICAL) layout.Add(b2a, 3, flag=wx.EXPAND) layout.Add(b2b, 2, flag=wx.EXPAND) layout.Add(b2c, 4, flag=wx.EXPAND) layout.Add(bp1, 1, flag=wx.EXPAND) self.SetSizer(layout) def SetButton(self, Name) : return wx.Button(self, wx.ID_ANY, Name) class IntegratePanel(wx.Panel) : def __init__(self, parent, *args, **kwargs) : wx.Panel.__init__(self, parent, wx.ID_ANY) bp1 = Panel1(self) bp2 = Panel2(self) layout = wx.BoxSizer(wx.HORIZONTAL) layout.Add(bp1, 3, flag=wx.EXPAND) layout.Add(bp2, 2, flag=wx.EXPAND) self.SetSizer(layout) class MainFrame(wx.Frame) : def __init__(self) : super().__init__(None, title="Sizer") self.SetSize(1000,1000) self.SetMinSize((500, 500)) self.Center(wx.BOTH) IntegratePanel(self) self.Show() def main() : app = wx.App() frame = MainFrame() app.MainLoop() return if __name__ == '__main__' : main()