Есть ли способ выполнить итерацию через дочерние элементы wx.GridBagSizer в порядке строк/столбцов?wxPython: GridBagSizer: Итерация по строкам и столбцам gridbagsizer
Я заметил, что могу выполнить GetChildren() на sizer, но я не смог найти документацию в API, которая говорит, как эти дети фактически сопоставляются с строками или столбцами. Есть два способа:
GetEffectiveRowsCount()
GetEffectiveColsCount()
Но я не знаю, как использовать их, чтобы перебирать детей. Я включил шаблон ниже:
import wx
import wx.lib.inspection
class MyRegion(wx.Frame):
I = 0
def __init__(self, parent):
wx.Frame.__init__(self, parent, title="My Region")
gridSizer = wx.GridBagSizer()
gridSizer.Add(self.CreateStaticBoxSizer(4), pos=(0,0), span=(4,1), flag=wx.EXPAND)
gridSizer.Add(self.CreateStaticBoxSizer(4), pos=(4,0), span=(4,1), flag=wx.EXPAND)
gridSizer.Add(self.CreateStaticBoxSizer(4), pos=(0,1), span=(4,1), flag=wx.EXPAND)
gridSizer.Add(self.CreateStaticBoxSizer(8), pos=(0,2), span=(7,1), flag=wx.EXPAND)
gridSizer.Add(self.CreateStaticBoxSizer(6), pos=(0,3), span=(6,1), flag=wx.EXPAND)
self.SetSizer(gridSizer)
for item in gridSizer.Children:
for r in range(0, gridSizer.GetEffectiveRowsCount()):
print(item.GetSize())
def CreateStaticBoxSizer(self, x=4):
box = wx.StaticBox(parent=self, label="StaticBox::" + str(MyRegion.I))
MyRegion.I += 1
sz = wx.StaticBoxSizer(orient=wx.VERTICAL, box=box)
for i in range(x):
sz.Add(wx.StaticText(parent=sz.GetStaticBox(),
label="This window is a child of the staticbox"))
return sz
if __name__ == "__main__":
app = wx.App()
frame = MyRegion(None)
frame.Show()
wx.lib.inspection.InspectionTool().Show()
app.MainLoop()
Спасибо, это именно то, что я ищу :) – Har