2011-08-21 24 views
0

我具有被放置在面板(ctrlPanel)上並安裝它使用wxPython的 - 在面板上增加圍繞GridBagSizer空間

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

現在面板已放置在BoxSizer

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

但是,在面板(而不是面板上的網格)周圍添加面板的空間確實會導致面板周圍出現「深灰色」邊框。

在將GridBagSizer安裝到面板之前,是否有一種「lege artis」方式來增加GridBagSizer周圍的空間?或者我需要破解填充的空單元格嗎?

感謝說Woodpicker

+0

嗯,IST這個問題的措辭嚴重,還是沒有人知道如何做到這一點? ;-) – Woodpicker

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