我正在使用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')
有关如何让我的网格显示的任何帮助?感谢。
答案 0 :(得分:0)
网格可能没有正确调整大小;你的物品可能在那里,但它并没有显示出一切。更改网格中的值后,我始终确保更新它的大小。我通常只是在类中添加一个简单的函数:
def SetGridSize(self):
self.mygrid.AutoSizeRows()
self.mygrid.AutoSizeColumns()
self.sizer.Fit(self)
然后每当我更改值时调用SetGridSize()以确保整个事物显示在屏幕上而不是被切断。
当然,你必须稍微调整一下你的名字和诸如此类的东西。此实现假定该类是wx.Frame对象。