私はサブクラス化したwx.Dialogを持っています。このダイアログでは、DCで私自身の絵を実行します&私は自分のwx.Timerを持っていて、100クロックステップごとにループします。wx.Timerを使用すると、常にwx.EVT_PAINT msg&not wx.EVT_TIMERが送信されます
ここで、self.timer.Start(100)と言ってwx.Timerを起動すると、100クロックステップごとに正しくループしますが、100クロックステップごとにwx.EVT_PAINT msgがダイアログに送信されますwx.EVT_TIMER msgではないのですか?あなたは、文字列常に(wx.EVT_TIMERイベントが受信されることはありません印刷されることはありません&「ゴット・タイマー」に印刷された「ゴット・ペイント」ことがわかります、それを実行した場合&以下の私の例から見て
その本当に簡単? )
それはなぜですか?それをどうやって修正することができますか?
import wx
class dlg(wx.Dialog):
def __init__(self, _parent):
wx.Dialog.__init__(self, parent=_parent, id=wx.ID_ANY)
self.Show()
self.w = wx.Timer(self)
self.Bind(wx.EVT_TIMER, self.on_timer, self.w)
self.Bind(wx.EVT_PAINT, self.on_paint)
self.w.Start(100)
def on_timer(self, event):
print "Got Timer"
raw_input()
def on_paint(self, event):
print "Got Paint"
raw_input()
class Frame(wx.Frame):
def __init__(self, _parent):
wx.Frame.__init__(self, parent=_parent, id=wx.ID_ANY)
self.Bind(wx.EVT_CLOSE, self.on_close)
self.w = dlg(self)
def on_close(self, event):
self.Close(True)
self.Destroy()
if __name__ == "__main__":
app = wx.App(False)
frame = Frame(None)
frame.Show()
app.MainLoop()