Gdk:如何在Python中从事件掩码中移除位?
我想从我窗口的事件中去掉 POINTER_MOTION_MASK
这个东西。我试过这样做:
win.set_events(win.get_events() & ~Gdk.EventMask.POINTER_MOTION_MASK)
但是,我遇到了这个错误:
TypeError: Expected a Gdk.EventMask, but got int
我该怎么才能把这个位从事件掩码中去掉呢?
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))