wxpython计时器事件间隔

wxpython计时器事件间隔,wxpython,Wxpython,我正在尝试用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_计时器出现的频率。我一直在尝试使用wx TimerEvent类,但没有任何运气。我

我正在尝试用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_计时器出现的频率。我一直在尝试使用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) 
谢谢

我不久前写了一封信,也许能帮你解决这个问题。基本上,您可以按照第一个代码段中提到的方式进行操作。您必须启动计时器并以毫秒为单位传递一个值。所以1000等于1秒。在wx.TimerEvent中,您不需要那个位。至少,我从来都不需要这个


无论如何,在您的示例中,计时器事件每750毫秒触发一次,或者不到一秒。我认为,如果机器的CPU被挂起,它可以中断或延迟计时器事件,但除此之外,它们非常可靠。

此外,如果要控制EVT\U计时器发生的频率,必须设置第二个参数,即布尔值
oneShot
。默认情况下,它被设置为
False
,但您可以指定类似于
self.timer.Start(毫秒=750,oneShot=True)
,并且计时器仍将闪烁,直到出现
self.timer.Stop()

祝你一切顺利