私は持っていwx.Frame
ます。時々内容を変える必要があります。タイマーがあり、数秒ごとに状態を確認し、状態が変化した場合はフレームの内容を変更する必要があります。
これを行うために、 というフレームにパネルをpanel.Reparent(None)
作成し、新しいコンテンツでパネルを作成しましたが、新しく作成したパネルでフレームが更新されません。destroy( panel.Destroy()
) で試してみましたが、うまくいきませんでした。
フレーム コンテンツを変更するための推奨される方法は何ですか (データだけでなく、UI コンポーネントを追加および削除する必要があります)。
class TestFrame(wx.Frame): def init (self): wx.Frame. init (self, None, title="Double Buffered Drawing") 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