import wx


class MyFrame(wx.Frame):
    def __init__(self, parent, id, title):

        wx.Frame.__init__(self, parent, id, title)
        
        masterSizer = wx.BoxSizer(wx.VERTICAL)
        
        #BEGIN PANEL 1
        PL1 = wx.Panel(self, -1, style=wx.NO_BORDER)
                
        hbox = wx.BoxSizer(wx.HORIZONTAL)
        
        pnl1 = wx.Choice(PL1, -1, choices=["One", "Two", "Three"])
        pnl2 = wx.Choice(PL1, -1, choices=["One", "Two", "Three"])
        pnl3 = wx.Choice(PL1, -1, choices=["One", "Two", "Three"])
        
        hbox.Add(pnl1, 1, wx.EXPAND | wx.ALL, 3)
        hbox.Add(pnl2, 1, wx.EXPAND | wx.ALL, 3)
        hbox.Add(pnl3, 1, wx.EXPAND | wx.ALL, 3)
                
        PL1.SetSizer(hbox)
        PL1.Layout()
        #END PANEL 1
        
        #BEGIN PANEL 2
        PL2 = wx.Panel(self, -1, style=wx.NO_BORDER)
        
        hbox1 = wx.BoxSizer(wx.HORIZONTAL)
        pnl5 = wx.Button(PL2, -1, "Button4")
        pnl6 = wx.Button(PL2, -1, "Button5")
        pnl7 = wx.Button(PL2, -1, "Button6")
        pnl8 = wx.Button(PL2, -1, "Button7")
        hbox1.Add(pnl5, 1, wx.EXPAND | wx.ALL, 3)
        hbox1.Add(pnl6, 1, wx.EXPAND | wx.ALL, 3)
        hbox1.Add(pnl7, 1, wx.EXPAND | wx.ALL, 3)
        hbox1.Add(pnl8, 1, wx.EXPAND | wx.ALL, 3)
        
        PL2.SetSizer(hbox1)
        PL2.Layout()
        #END PANEL 2
        
        #BEGIN PANEL 3
        PL3 = wx.Panel(self, -1, style=wx.NO_BORDER)
        
        vbox1 = wx.BoxSizer(wx.VERTICAL)
        pnl5 = wx.SpinCtrl(PL3, -1, "Button4")
        pnl6 = wx.SpinCtrl(PL3, -1, "Button5")
        pnl7 = wx.SpinCtrl(PL3, -1, "Button6")
        vbox1.Add(pnl5, 1, wx.EXPAND | wx.ALL, 3)
        vbox1.Add(pnl6, 1, wx.EXPAND | wx.ALL, 3)
        vbox1.Add(pnl7, 1, wx.EXPAND | wx.ALL, 3)
                
        PL3.SetSizer(vbox1)
        PL3.Layout()
        #END PANEL 2
        
        self.Centre()
        
        masterSizer.Add(PL1, 1)
        masterSizer.Add(PL2, 1)
        masterSizer.Add(PL3, 1)
        self.SetSizer(masterSizer)
        
        #Scaling How to?
        PL3.SetSize((0,0))
        PL3.Layout()
               

class MyApp(wx.App):
    def OnInit(self):
        frame = MyFrame(None, -1, 'Panel Test')
        frame.Show(True)
        return True

app = MyApp(0)
app.MainLoop()