wxPython - 在Panel上的GridBagSizer周围添加空格

时间:2011-08-21 06:54:37

标签: wxpython panel space

我有一个放置在Panel(ctrlPanel)上的GridBagSizer(控件),并使用

进行安装。
controls.Fit(ctrlPanel)
ctrlPanel.SetSizer(controls)

现在Panel被放置在BoxSizer

mainSizer = wx.BoxSizer(wx.VERTICAL)
mainSizer.Add(ctrlPanel, 0, wx.EXPAND|wx.ALL, 10)

但是,在框中添加面板周围的空间(而不是面板上的网格)会导致面板周围出现“深灰色”边框。

在GridBagSizer安装到面板之前,是否有“lege artis”方法可以在GridBagSizer周围添加空间?或者我是否需要在填充的单元周围破坏空单元?

感谢Woodpicker

1 个答案:

答案 0 :(得分:3)

我希望这就是你要找的东西:

import wx

class MainWindow(wx.Frame):
    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self, *args, **kwargs)

        self.panel = wx.Panel(self)
        self.buttons = [wx.Button(self.panel, label=str(n)) for n in range(9)]

        self.sizer = wx.GridBagSizer()
        for i, button in enumerate(self.buttons):
            self.sizer.Add(button, (i / 3, i % 3), flag=wx.ALL | wx.EXPAND)
        self.sizer.AddGrowableCol(1)
        self.sizer.AddGrowableRow(1)

        self.border = wx.BoxSizer()
        self.border.Add(self.sizer, 1, wx.ALL | wx.EXPAND, 20)

        self.panel.SetSizerAndFit(self.border)  
        self.Show()

app = wx.App(False)
win = MainWindow(None)
app.MainLoop()