wxPython-在面板上的GridBagSizer周围添加空间

wxPython-在面板上的GridBagSizer周围添加空间,wxpython,panel,space,Wxpython,Panel,Space,我有一个GridBagSizer(控件),它放在面板(ctrlPanel)上,并使用 controls.Fit(ctrlPanel) ctrlPanel.SetSizer(controls) 现在,面板被放置在BoxSizer中 mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(ctrlPanel, 0, wx.EXPAND|wx.ALL, 10) 但是,在框中的面板周围添加空间(而不是面板上的网格)确实会导致面板周围出现“深灰色”边框 在

我有一个GridBagSizer(控件),它放在面板(ctrlPanel)上,并使用

controls.Fit(ctrlPanel)
ctrlPanel.SetSizer(controls)
现在,面板被放置在BoxSizer中

mainSizer = wx.BoxSizer(wx.VERTICAL)
mainSizer.Add(ctrlPanel, 0, wx.EXPAND|wx.ALL, 10)
但是,在框中的面板周围添加空间(而不是面板上的网格)确实会导致面板周围出现“深灰色”边框

在GridBagSizer安装到面板之前,是否有一种“法律艺术”的方法来增加GridBagSizer周围的空间?或者我需要在填充的单元格周围破解空单元格吗


感谢樵夫说

我希望这就是你想要的:

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()

我希望这就是你想要的:

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()

嗯,这个问题措辞不当,还是没人知道如何做到这一点?;-)发生的事情已经很清楚了(你在一个没有任何背景的面板周围创建了一个边界),但是如果没有更多的信息,很难给你一个清晰的解决方案。如果可以的话,发布一些简单的、可运行的代码来演示表单布局和出错的地方。嗯,这个问题措辞不当,还是没人知道如何做到这一点?;-)发生的事情已经很清楚了(你在一个没有任何背景的面板周围创建了一个边界),但是如果没有更多的信息,很难给你一个清晰的解决方案。如果可以的话,发布一些简单的、可运行的代码来演示表单布局和出错的地方。