我有一个wx.Frame
. 我需要不时更改内容。我有一个计时器,每隔几秒钟我检查一次状态,如果状态已经改变,我需要改变框架的内容。
为了做到这一点,我在名为 的框架中panel.Reparent(None)
创建了一个面板,并创建了一个包含新内容的面板,但该框架并未使用新创建的面板进行更新。我尝试使用破坏(panel.Destroy()
),但这没有用。
更改框架内容的推荐方法是什么(不仅是数据,我还需要添加和删除 UI 组件)?
类 TestFrame(wx.Frame): def init (self): wx.Frame。init (self, None, title="双缓冲绘图") self.counter = 0 self.panel = wx.Panel(self, -1) wx.CheckBox(self.panel, -1, "Alpha", (35, 40), (150, 20))
# Create a timer to update the data values
self.Bind(wx.EVT_TIMER, self.OnTimeout)
self.timer = wx.Timer(self)
self.timer.Start(5000)
def OnTimeout(self, evt):
p = self.panel
self.counter = self.counter + 1
try:
p.Reparent(None)
except e:
print 'B'
if self.counter % 2 == 0:
self.panel = wx.Panel(self, -1)
wx.CheckBox(self.panel, -1, "Alpha", (35, 40), (150, 20))
self.Show() #Tried also self.Layout self.Refresh self.Update