Events wxPython-在自定义绑定事件之前运行内置事件

Events wxPython-在自定义绑定事件之前运行内置事件,events,event-handling,wxpython,Events,Event Handling,Wxpython,我试图弄清楚如何指定wxPython(StyledTextCtrl)中的mouse_down事件首先由内置事件侦听器处理,该侦听器更改插入符号的位置,然后由我自己的自定义事件处理程序处理 要绑定我使用的自定义事件处理程序 wx.EVT\u左下(self.styCtrl、self.OnMouseClick) 我希望内置事件处理程序在foo()之前启动并完成。没关系,我已经找到了解决方案。如果有人有更优雅的解决方案,那将是受欢迎的。 我的解决方案使用wx.CallAfter()方法: def Bin

我试图弄清楚如何指定wxPython(StyledTextCtrl)中的mouse_down事件首先由内置事件侦听器处理,该侦听器更改插入符号的位置,然后由我自己的自定义事件处理程序处理

要绑定我使用的自定义事件处理程序 wx.EVT\u左下(self.styCtrl、self.OnMouseClick)


我希望内置事件处理程序在foo()之前启动并完成。

没关系,我已经找到了解决方案。如果有人有更优雅的解决方案,那将是受欢迎的。 我的解决方案使用wx.CallAfter()方法:

def BindEvents(self):

    self.ctrl.Bind(wx.EVT_LEFT_DOWN, self.OnMouseClickDelay)

def OnMouseClickDelay(self, evt):
    wx.CallAfter(self.OnMouseClick, evt)
    evt.Skip()

def OnMouseClick(self, evt):
    foo()
这样,无论基控件对事件执行什么操作,消息队列都将执行实际的OnMouseClick事件。所以foo()发生在ctrl的内部事件处理之后

def BindEvents(self):

    self.ctrl.Bind(wx.EVT_LEFT_DOWN, self.OnMouseClickDelay)

def OnMouseClickDelay(self, evt):
    wx.CallAfter(self.OnMouseClick, evt)
    evt.Skip()

def OnMouseClick(self, evt):
    foo()