我想使用鼠标中键在用Python编写的应用程序中拖动图像,并使用PythonCard / wxPython作为GUI。
最新版本的PythonCard仅实现“鼠标左键拖动”事件,而我也试图修改PythonCard以处理“鼠标中键拖动”。
这是来自Lib \ site-packages \ PythonCard \ event.py的相关代码:
class MouseMoveEvent(MouseEvent, InsteadOfTypeEvent):
name = 'mouseMove'
binding = wx.EVT_MOTION
id = wx.wxEVT_MOTION
def translateEventType(self, aWxEvent):
if aWxEvent.Dragging():
return MouseDragEvent.id
else:
return self.id
class MouseDragEvent(MouseMoveEvent):
name = 'mouseDrag'
id = wx.NewEventType()
class MouseMiddleDragEvent(MouseMoveEvent): #My addition
name = 'mouseMiddleDrag'
id = wx.NewEventType()
我的添加无效。我该怎么办呢?有没有可以用来绕过PythonCard的特定wxPython方法?
最佳答案
事实证明,无论按下鼠标上的哪个按钮,mouseDrag事件都处于活动状态。要过滤鼠标中键,需要从MouseEvent调用MiddleIsDown()方法。
def on_mouseDrag( self, event ):
do_stuff()
if event.MiddleIsDown():
do_other_stuff()