1

Python で記述され、GUI に PythonCard/wxPython を使用するアプリケーションで、マウスの中ボタンを使用して画像をドラッグしたいと考えています。

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 に答える