Кнопка wxpython flexgridSizer в правом нижнем углу - PullRequest
0 голосов
/ 27 июня 2018

Я бы хотел поместить кнопку «Enregistrer» в нижний правый угол: enter image description here

Вот мой код:

    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
    for v in range(0, 40):
        sizer.Add(10,10,wx.EXPAND)

    btn = wx.Button(self, wx.ID_ANY, "Enregistrer")
    btn.Bind(wx.EVT_BUTTON, self.save)
    sizer.Add(btn, 2, wx.ALIGN_BOTTOM|wx.ALIGN_RIGHT)
    self.SetSizer(sizer)

Я не могу понять, почему кнопка не идет в угол.

Можете ли вы помочь мне?

1 Ответ

0 голосов
/ 27 июня 2018

Существует несоответствие между объявленным вами размером 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()

Мы получаем это: enter image description here

Однако, если вы хотите, чтобы кнопка располагалась отдельно в крайнем правом нижнем углу экрана, вам может потребоваться добавить более одного классификатора или выбрать другой. Например, GridSizer или GridBagSizer

...