wxPython - добавление пространства вокруг GridBagSizer на панели - PullRequest
0 голосов
/ 21 августа 2011

У меня есть GridBagSizer (элементы управления), который размещен на панели (ctrlPanel) и прикреплен к нему с помощью

controls.Fit(ctrlPanel)
ctrlPanel.SetSizer(controls)

Теперь панель помещается в BoxSizer

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

Однако добавление пространства вокруг панели в блоке (а не сетки на панели) приводит к появлению «темно-серой» границы вокруг панели.

Существует ли способ добавления пространства в lege artisвокруг GridBagSizer перед его установкой на панель?Или мне нужно взломать пустые клетки вокруг заполненных?

Спасибо, говорит Дятел

1 Ответ

3 голосов
/ 26 августа 2011

Я надеюсь, что это то, что вы ищете:

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