Существует несоответствие между объявленным вами размером FlexGridSizer
(10x6) и количеством предметов, которые вы в него помещаете (кнопка 40 + 1).
Изменение вашего кода немного:
#!/usr/bin/env python
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, ID, title):
wx.Frame.__init__(self, parent, ID, title, wx.DefaultPosition)
sizer = wx.FlexGridSizer(10, 6, 10, 10)
# here i had all the other stuff an put it in the sizer
# self refere to a wx.panel
# SPACE
v=[]
for i in range(0,59):
v.append(wx.StaticText(self,-1,"......"+str(i)))
for i in v:
sizer.Add(i,1,wx.EXPAND)
btn = wx.Button(self, wx.ID_ANY, "Enregistrer")
#btn.Bind(wx.EVT_BUTTON, self.save)
sizer.Add(btn,0,wx.EXPAND|wx.ALIGN_RIGHT)
self.SetSizer(sizer)
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, "FlexGridSizer")
frame.Show(True)
self.SetTopWindow(frame)
return True
if __name__ == "__main__":
app = MyApp(0)
app.MainLoop()
Мы получаем это:
Однако, если вы хотите, чтобы кнопка располагалась отдельно в крайнем правом нижнем углу экрана, вам может потребоваться добавить более одного классификатора или выбрать другой. Например, GridSizer
или GridBagSizer