【问题标题】:wxpython flexgridSizer button bottom right cornerwxpython flexgridSizer 按钮右下角
【发布时间】:2018-12-06 03:42:31
【问题描述】:

我想把“Enregistrer”按钮放在右下角:

这是我的代码:

    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)

我无法弄清楚为什么按钮不转到角落。

你能帮帮我吗?

【问题讨论】:

    标签: python user-interface wxpython wxwidgets


    【解决方案1】:

    您声明的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()
    

    我们得到这个:

    但是,如果您希望将按钮单独放在屏幕的最右下方,则可能需要添加多个尺寸器或完全选择不同的尺寸器。例如GridSizerGridBagSizer

    【讨论】:

      猜你喜欢
      • 2019-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多