Q:為什么會有一次event,多次handler的需求呢?
A:因為wxpython 目前有一個BUG,在一個event函數(shù)中,無法使用兩次Dialog.showModal方法。當(dāng)?shù)谝粋€Dialog消失后,第二個dialog再彈出,會造成系統(tǒng)卡死。所以必須把兩個dialog.showModal放入兩個event中。
綁定規(guī)則:先綁定的后執(zhí)行
給按鈕sync_button 綁定三個事件,第一次執(zhí)行的在下,第二次執(zhí)行的在上,如下:
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)
def sync_one_event(self, event):
print("第一次觸發(fā)事件" )
event.Skip()
def sync_two_event(self, event):
print("第二次觸發(fā)事件" )
event.Skip()
def sync_three_event(self, event):
print("第三次觸發(fā)事件" )
event.Skip()
最后觸發(fā)的結(jié)果是:
第一次觸發(fā)事件
第二次觸發(fā)事件
第三次觸發(fā)事件