import wx class MyFrame(wx.Frame): def __init__(self,parent,id,title): wx.Frame.__init__(self,parent,id,title,wx.DefaultPosition,wx.DefaultSize) panel = wx.Panel(self,-1) vbox = wx.BoxSizer(wx.VERTICAL) hbox1 = wx.BoxSizer(wx.HORIZONTAL) hbox2 = wx.BoxSizer(wx.HORIZONTAL) hbox1.Add(wx.Button(panel,-1,"button1"),1,wx.ALL,5) hbox1.Add(wx.StaticText(panel,-1,"text1"),1,wx.ALL,5) hbox2.Add(wx.Button(panel,-1,"button2"),1,wx.ALL,5) hbox2.Add(wx.StaticText(panel,-1,"text2"),1,wx.ALL,5) vbox.Add(hbox1,1,wx.ALL) vbox.Add(hbox2,1,wx.ALL) panel.SetSizer(vbox) class MyApp(wx.App): def OnInit(self): frame = MyFrame(None,-1,'foo') frame.Show() return True app = MyApp(0) app.MainLoop()
疑問なのは、この場合Panel使わなくても出来るってこと。
import wx class MyFrame(wx.Frame): def __init__(self,parent,id,title): wx.Frame.__init__(self,parent,id,title,wx.DefaultPosition,wx.DefaultSize) vbox = wx.BoxSizer(wx.VERTICAL) hbox1 = wx.BoxSizer(wx.HORIZONTAL) hbox2 = wx.BoxSizer(wx.HORIZONTAL) hbox1.Add(wx.Button(self,-1,"button1"),1,wx.ALL,5) hbox1.Add(wx.StaticText(self,-1,"text1"),1,wx.ALL,5) hbox2.Add(wx.Button(self,-1,"button2"),1,wx.ALL,5) hbox2.Add(wx.StaticText(self,-1,"text2"),1,wx.ALL,5) vbox.Add(hbox1,1,wx.ALL) vbox.Add(hbox2,1,wx.ALL) self.SetSizer(vbox) class MyApp(wx.App): def OnInit(self): frame = MyFrame(None,-1,'foo') frame.Show() return True app = MyApp(0) app.MainLoop()