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 回答