Events wxPython-在自定义绑定事件之前运行内置事件
我试图弄清楚如何指定wxPython(StyledTextCtrl)中的mouse_down事件首先由内置事件侦听器处理,该侦听器更改插入符号的位置,然后由我自己的自定义事件处理程序处理 要绑定我使用的自定义事件处理程序 wx.EVT\u左下(self.styCtrl、self.OnMouseClick)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
我希望内置事件处理程序在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()