2014-04-30 73 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对象。