wxpython一个event,多个handler,先绑定的后执行
Q:为什么会有一次event,多次handler的需求呢?
A:因为wxpython 目前有一个BUG,在一个event函数中,无法使用两次Dialog.showModal方法。当第一个Dialog消失后,第二个dialog再弹出,会造成系统卡死。所以必须把两个dialog.showModal放入两个event中。
绑定规则:先绑定的后执行
给按钮sync_button 绑定三个事件,第一次执行的在下,第二次执行的在上,如下:
给按钮绑定事件
self.sync_button.Bind(wx.EVT_BUTTON, self.sync_three_event)
self.sync_button.Bind(wx.EVT_BUTTON, self.sync_two_event)
self.sync_button.Bind(wx.EVT_BUTTON, self.sync_one_event)
编写事件的event
def sync_one_event(self, event):
print("第一次触发事件" )
event.Skip()
def sync_two_event(self, event):
print("第二次触发事件" )
event.Skip()
def sync_three_event(self, event):
print("第三次触发事件" )
event.Skip()
最后触发的结果是:
第一次触发事件
第二次触发事件
第三次触发事件