wxPython没有显示网格

时间:2014-04-30 15:22:35

标签: python wxpython

我正在使用wxPython制作一个gui。目前我有一个菜单栏和三个面板。我想在单击按钮时在第二个面板中显示网格。然而。当我点击按钮时,我得到的只是一个小的灰色矩形。

以下是按钮的代码:

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

以下是单击按钮时“OnCo”事件的代码:

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')

有关如何让我的网格显示的任何帮助?感谢。

1 个答案:

答案 0 :(得分:0)

网格可能没有正确调整大小;你的物品可能在那里,但它并没有显示出一切。更改网格中的值后,我始终确保更新它的大小。我通常只是在类中添加一个简单的函数:

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

然后每当我更改值时调用SetGridSize()以确保整个事物显示在屏幕上而不是被切断。

当然,你必须稍微调整一下你的名字和诸如此类的东西。此实现假定该类是wx.Frame对象。