1

I have a sizer with a GridBagSizer with a single element in it as follows:

sizer = wx.GridBagSizer()
sizer.Add(wx.Button(self, label="click"), border=5, flag=wx.LEFT | wx.BOTTOM)

however I dont want a square border, how can I have a separate size i.e. 10 pixel border for wx.LEFT and a 5 pixel border for wx.BOTTOM?

Har
  • 3,727
  • 10
  • 41
  • 75

1 Answers1

2

Drop the wx.BOTTOM flag in your example and nest that sizer inside of a vertically oriented BoxSizer. When you add it to the BoxSizer, you can give it the wx.BOTTOM flag instead. Something like this should work:

sizer = wx.GridBagSizer()
sizer.Add(wx.Button(self, label="click"), border=10, flag=wx.LEFT)

main_sizer = wx.BoxSizer(wx.VERTICAL)
main_sizer.Add(sizer, 0, wx.BOTTOM, 5)

Note that you'll want to set the main_sizer as your sizer:

self.panel.SetSizer(main_sizer)
Mike Driscoll
  • 32,629
  • 8
  • 45
  • 88