1

我想使用鼠标中键在用 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 方法?

4

1 回答 1

1

事实证明,无论按下鼠标上的哪个按钮,mouseDrag事件都是活动的。要过滤鼠标中键,您需要从MouseEvent调用MiddleIsDown()方法。

def on_mouseDrag( self, event ):       
    do_stuff()

    if event.MiddleIsDown():
        do_other_stuff()
于 2009-05-27T20:01:59.847 回答