2013-01-21 68 views
2

我是wxPython的新手,我有一個關於讓按鈕調整大小的非常基本的問題。wxPython - 無法獲取調整大小的按鈕

進出口工作在Mac上使用Python 2.7.3和使用wxPython的2.8.10.1

我一直在用它工作了幾天,我想我明白篩分器的佈局方法。我試圖在窗口擴大時獲得一個按鈕的網格,以增加大小。我知道這是一個基本問題,但我花了數小時。

我不知道如何在這裏得到一個屏幕截圖圖像,但按鈕顯示正常,然後保持相同的大小,當窗口放大。

謝謝。

#!/usr/bin/env python 
import wx 
class Example(wx.Frame): 

def __init__(self, *args, **kw): 
    super(Example, self).__init__(*args, **kw) 
    self.InitUI() 
    self.SetSize((550, 160)) 
    self.SetTitle("Label of Grids") 
    self.Centre() 
    self.Show()  

def InitUI(self): 

    pnl = wx.Panel(self)  
    grid = wx.GridBagSizer(3, 3) 
    for r in range(6): 
     for c in range (4): 
      buttonname = str(r)+"_"+str(c) 
      labeltxt = "(row= "+str(r)+", col= "+str(c)+")" 
      grid.Add(wx.Button(pnl, name = buttonname,label=labeltxt), (r, c),flag =wx.EXPAND) 
    pnl.SetSizer(grid) 

def main(): 

    app = wx.App() 
    Example(None) 
    app.MainLoop()  


if __name__ == '__main__': 
    main() 

回答

1

當你使用GridBagSizer的,你需要做的AddGrowableCol(idx)AddGrowableRow(idx)方法的調用,以便允許個別行和列的網格在尺寸流體。

+0

我已經加入這些想到的是: grid.AddGrowableRow(R) grid.AddGrowableCol(C) 這使得行列數增長,但不是按鈕 –

+1

的AddGrowable方法使細胞擴大,但你仍然需要使用項目上的wx.EXPAND標誌來讓它們展開以填充網格單元格。您還應該考慮使用WIT來幫助試驗選項並可視化sizer發生的情況。 http://wiki.wxpython.org/Widget_Inspection_Tool – RobinDunn

+0

@NewatPython - 你需要像Robin指出的組合。我發佈了它,因爲必要的調用不在您的示例代碼中。如果您已經使用了兩者,但仍然無法正常工作,則需要查看更完整的代碼才能瞭解正在發生的事情。 –