【发布时间】:2010-04-04 15:03:41
【问题描述】:
当事件循环中有两个相同的事件时,wxPython 会同时处理它们,还是只为它们调用一次处理程序?
我的意思是,在我的小部件中,我想要一个像 EVT_NEED_TO_RECALCULATE_X 这样的事件。我希望在需要重新计算 x 的各种不同情况下发布此事件。但是,即使有两种不同的原因需要重新计算x,也只需重新计算一次。
我该怎么做?
编辑:
我试过这段代码:
import wx
class Frame(wx.Frame):
def __init__(self, parent=None):
wx.Frame.__init__(self, parent)
self.Bind(wx.EVT_COLOURPICKER_CHANGED, self.on_event)
self.Centre()
self.Show(True)
self.i = 0
self.event_all()
def on_event(self, event):
print self.i
self.i += 1
def event_all(self):
for j in range(1000):
event = wx.PyEvent()
event.SetEventType(wx.EVT_COLOURPICKER_CHANGED.evtType[0])
wx.PostEvent(self, event)
app = wx.App()
Frame(None)
app.MainLoop()
如果事件确实组合在一起,我希望它不会一直计数到 1000。但确实如此。他们是否被分组?
【问题讨论】:
标签: python events wxpython wxwidgets