2011-09-24 74 views
0

我是wx小部件的新手。我正在试图制作一个GUI,其中必须根据特定条件显示某些按钮。问题是,当我在Frame.show()之后创建这个新按钮时,直到我将鼠标移动到按钮应该放置的位置之前,该按钮才可见。我试过Frame.Refresh()但那不工作。WxPython更新帧以显示按钮

self.button = wx.Button(panel, 1, 'Delete', (230, 120)) 
self.Bind(wx.EVT_BUTTON, self.delSong, self.button) 
self.button2 = wx.Button(panel, 3, 'Refresh', (130, 120)) 
self.Bind(wx.EVT_BUTTON, self.shelving, self.button2) 
self.button.Disable() 
self.button2.Enable() 
self.button3 = wx.Button(panel, 1, 'Exit', (230, 120)) 
self.Bind(wx.EVT_BUTTON, self.close, self.button3) 
self.button3.Hide() 
self.Show() 

try: 
    fooo 
except KeyError: 
    self.button.Destroy() 
    self.button3.Show() 

我想在这里做的是删除按钮并显示button3。但是,在例外的情况下,按钮3不显示在框架中。还有其他什么刷新框架?

回答

0

你可能只需要调用Frame的Layout()方法。这就是我插入或移除小部件时所做的事情。我还推荐学习sizer,因为它们非常方便自动调整大小和定位。