WxPython更新框架以显示按钮

时间:2011-09-24 17:41:01

标签: python wxpython

我是wx小部件的新手。我正在尝试制作一个GUI,我必须根据某些条件显示某些按钮。问题是当我在Frame.show()之后创建这个新按钮时,按钮是不可见的,直到我将鼠标移到该按钮应该是的位置。我试过Frame.Refresh()但是那不起作用。

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不会显示在框架中。是否有其他东西可以刷新框架?

1 个答案:

答案 0 :(得分:0)

您可能只需要调用Frame的Layout()方法。这就是我插入或删除小部件时的操作。我还建议学习sizer,因为它们非常便于自动调整大小和定位。