wxPython的计时器事件间隔(wxpython Timer Event Interval)

2019-09-17 02:08发布

我想写与WX Python的GUI应用程序,我需要控制定时器事件的时间间隔。 这里是我当前的代码:

self.timer = wx.Timer(self)
self.Bind(wx.EVT_TIMER, self.on_timer, self.timer)        
self.timer.Start(750) # start timer after a delay

这是一个正确的框架,但我无法控制的期间或多久EVT_TIMER发生。 我一直在试图找出使用WX TimerEvent类,但没有任何的运气。 我觉得这应该是我所需要的,但它不工作:

self.timer = wx.Timer(self)
self.timerEvent = wx.TimerEvent(self.timer.GetId(),10)
self.Bind(wx.EVT_TIMER, self.on_timer, self.timer) 

谢谢!

Answer 1:

我写了一篇有关定时器教程而回,可以帮助你摸不着头脑。 基本上,你做你的第一个代码片段提及。 你必须开始计时,并通过它以毫秒为单位的值。 所以将1000 = 1秒。 你不需要用wx.TimerEvent该位。 至少,我从来没有需要的。

总之,定时器事件触发在例如每750毫秒,比第二少一点。 我认为,如果你的机器的CPU被盯住,它可以中断或延迟计时器事件,但除此之外,他们是非常可靠的。



Answer 2:

另外,如果你想控制多久EVT_TIMER发生时,你必须设置第二个参数,布尔oneShot 。 默认情况下,它被设置为False ,但你可以指定类似self.timer.Start(milliseconds = 750, oneShot = True)定时器仍将shoting直到在self.timer.Stop()出现位。

祝一切顺利。



文章来源: wxpython Timer Event Interval
标签: wxpython