4

POINTER_MOTION_MASKウィンドウのイベントからを削除したい。私は試した:

win.set_events(win.get_events() & ~Gdk.EventMask.POINTER_MOTION_MASK)

ただし、次のエラーが発生します。

TypeError: Expected a Gdk.EventMask, but got int

イベントマスクからビットを削除するにはどうすればよいですか?

4

1 に答える 1

1

~ 演算子は結果の型を変更します。

>>> type(Gdk.EventMask.POINTER_MOTION_MASK)
<class 'gi.repository.Gdk.GdkEventMask'>
>>> type(~Gdk.EventMask.POINTER_MOTION_MASK)
<type 'int'>

したがって、結果をキャストする必要があります。私はこれがうまくいくと思います:

win.set_events(win.get_events() & (Gdk.EventMask)~Gdk.EventMask.POINTER_MOTION_MASK))
于 2013-01-31T09:41:41.523 に答える