wxpython flexgridSizer按钮右下角
wxpython flexgridSizer button bottom right corner
我想把"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)
我不明白为什么按钮没有转到角落。
你能帮帮我吗?
您 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()
我们得到这个:
但是,如果您希望按钮单独位于屏幕最 right-hand 底部,您可能需要添加多个 sizer 或完全选择不同的 sizer。例如 GridSizer
或 GridBagSizer
我想把"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)
我不明白为什么按钮没有转到角落。
你能帮帮我吗?
您 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()
我们得到这个:
但是,如果您希望按钮单独位于屏幕最 right-hand 底部,您可能需要添加多个 sizer 或完全选择不同的 sizer。例如 GridSizer
或 GridBagSizer