phineasがすでに言ったように、ウィジェットを配置するにはサイザーを使用する必要があります。しかし、本当に複数のパネルを並べて配置したい場合は、そのためにサイザーを使用することもできます。
import random
import wx
########################################################################
class RandomPanel(wx.Panel):
""""""
#----------------------------------------------------------------------
def __init__(self, parent):
"""Constructor"""
wx.Panel.__init__(self, parent)
color = random.choice(["green", "blue", "yellow", "red"])
self.SetBackgroundColour(color)
########################################################################
class MainPanel(wx.Panel):
""""""
#----------------------------------------------------------------------
def __init__(self, parent):
"""Constructor"""
wx.Panel.__init__(self, parent)
firstSubPanel = RandomPanel(self)
secondSubPanel = RandomPanel(self)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(firstSubPanel, 1, wx.EXPAND|wx.ALL, 5)
sizer.Add(secondSubPanel, 1, wx.EXPAND|wx.ALL, 5)
self.SetSizer(sizer)
########################################################################
class MainFrame(wx.Frame):
""""""
#----------------------------------------------------------------------
def __init__(self):
"""Constructor"""
wx.Frame.__init__(self, None, title="Panels")
panel = MainPanel(self)
if __name__ == "__main__":
app = wx.App(False)
frame = MainFrame()
frame.Show()
app.MainLoop()