2014-04-30 74 views
1

我正在使用wxPython來創建一個gui。目前我有一個菜單欄和三個面板。當我點擊一個按鈕時,我希望在第二個面板中顯示網格。然而。當我點擊按鈕時,我所得到的只是一個灰色的小矩形。wxPython沒有顯示網格

下面是按鈕的代碼:

self.Bind(wx.EVT_BUTTON, self.OnCo, id=self.submit.GetId()) 

,這裏是按鈕被點擊時,對於「致癌」事件的代碼:

def OnCo(self, e): 

    #to get rid of stuff that was previously in the panel 
    for child in self.panel2.GetChildren(): 
     child.Destroy() 
    for child in self.panel3.GetChildren(): 
     child.Destroy() 

    mygrid = gridlib.Grid(self.panel2, -1) 
    mygrid.CreateGrid(500,7) 
    sizer = wx.BoxSizer(wx.VERTICAL) 
    sizer.Add(mygrid, -1, wx.EXPAND) 
    self.panel2.SetSizer(sizer) 
    mygrid.SetColLabelValue(0, 'S') 
    mygrid.SetColLabelValue(1, 'PB') 
    mygrid.SetColLabelValue(2, 'P') 
    mygrid.SetColLabelValue(3, 'T') 
    mygrid.SetColLabelValue(4, 'D') 

我如何能得到任何幫助我的網格顯示?謝謝。

回答

0

這可能是網格大小不正確;你的物品可能在那裏,但它沒有顯示出所有的東西。在改變網格中的值之後,我總是確保更新它的大小。我通常只是添加一個簡單的函數的類是這樣的:

def SetGridSize(self): self.mygrid.AutoSizeRows() self.mygrid.AutoSizeColumns() self.sizer.Fit(self)

,然後調用SetGridSize()每當我改變值,以確保整個事情的顯示屏幕,而不是被截斷的。

當然,你必須適應它一點點到你的名字和whatnot。這個實現假定這個類是一個wx.Frame對象。