У меня возникли трудности с правильной работой моих sizers в wxpython. Я пытаюсь сделать простой горизонтальный брус сверху (с текстом в нем) и два вертикальных блока ниже (с гридизаторами * слева должен быть только 2 столбца! * Внутри каждого). Я хочу, чтобы все на картинке растягивалось и приспосабливалось к моей панели (с возможностью добавления дополнений в стороны и сверху/снизу). wxpython layout with sizers
У меня есть два основных вопроса: 1. Я не могу получить текст в горизонтальной строке, чтобы быть в середине (она идет налево) 2. Я хотел бы пространство две вертикальные окна, чтобы охватить и соответствующим образом подгоните страницу (также хотелось бы, чтобы сетки также охватывали также).
Вот мой код (с опущено некоторые части):
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 is all correct])
self.LeagueInfoL.SetSizer(vbox2a)
vbox3a.AddMany([this is all 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)
Не могли бы вы привести пример runnable? – GP89
Кстати, вам нужны только 2 коробки и 2 сетки. (сетчатые sizers в горизонтальной коробке sizer, затем текст и горизонтальный sizer в вертикальном sizer). Вероятно, вы захотите установить пропорцию 1 при добавлении гридизаторов. – GP89
GP89 и Майк оба прибили его. Спасибо за помощь! – mcfly