python - wxpython layout with sizers -
i'm having difficulty getting sizers work in wxpython. trying simple 1 horizontal bar @ top (with text in it) , 2 vertical boxes below (with gridsizers * left 1 should 2 columns!! * inside each). want in image stretch , fit panel (with ability add padding sides , top/bottom). 
i have 2 main issues: 1. cant text in horizontal bar in middle (it goes left) 2. space 2 vertical boxes span , fit page appropriately (also grids span better too).
here code (with parts omitted):
self.leagueinfou = wx.panel(self.leagueinfo,-1, style=wx.border_none) self.leagueinfol = wx.panel(self.leagueinfo,-1, style=wx.border_none) self.leagueinfor = wx.panel(self.leagueinfo,-1, style=wx.border_none) vbox = wx.boxsizer(wx.vertical) hbox1 = wx.boxsizer(wx.horizontal) hbox2 = wx.boxsizer(wx.horizontal) vbox2a = wx.gridsizer(12,2,0,0) vbox3a = wx.gridsizer(10,3,0,0) hbox1a = wx.boxsizer(wx.vertical) vbox2 = wx.boxsizer(wx.vertical) vbox3 = wx.boxsizer(wx.vertical) hbox1.add(self.leagueinfou, 1, wx.expand | wx.all, 3) vbox2.add(self.leagueinfol, 1, wx.expand | wx.all, 3) vbox3.add(self.leagueinfor, 1, wx.expand | wx.all, 3) vbox2a.addmany([this correct]) self.leagueinfol.setsizer(vbox2a) vbox3a.addmany([this correct]) self.leagueinfor.setsizer(vbox3a) font = wx.font(20, wx.default, wx.normal, wx.bold) self.big_header = wx.statictext(self.leagueinfou, -1, 'testing this') self.big_header.setfont(font) hbox1a.add(self.big_header, 0, wx.align_center|wx.align_center_vertical) self.leagueinfou.setsizer(hbox1a) hbox2.add(vbox2, 0, wx.expand) hbox2.add(vbox3, 0, wx.expand) vbox.add(hbox1, 0, wx.expand) vbox.add(hbox2, 1, wx.expand) self.leagueinfo.setsizer(vbox)
is you're after?

import wx class frame(wx.frame): def __init__(self, parent): wx.frame.__init__(self, parent) self.panel = wx.panel(self) main_sizer = wx.boxsizer(wx.vertical) # title self.centred_text = wx.statictext(self.panel, label="title") main_sizer.add(self.centred_text, 0, wx.align_centre | wx.all, 3) # grids content_sizer = wx.boxsizer(wx.horizontal) grid_1 = wx.gridsizer(12, 2, 0, 0) grid_1.addmany(wx.statictext(self.panel, label=str(i)) in xrange(24)) content_sizer.add(grid_1, 1, wx.expand | wx.all, 3) grid_2 = wx.gridsizer(10, 3, 0, 0) grid_2.addmany(wx.statictext(self.panel, label=str(i)) in xrange(30)) content_sizer.add(grid_2, 1, wx.expand | wx.all, 3) main_sizer.add(content_sizer, 1, wx.expand) self.panel.setsizer(main_sizer) self.show() if __name__ == "__main__": app = wx.app(false) frame(none) app.mainloop()
Comments
Post a Comment