python - Gdk:如何从 Python 中的事件掩码中删除位?

标签 python gtk bitwise-operators gdk

我想从我的窗口事件中删除 POINTER_MOTION_MASK。我试过:

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

但是,我得到这个错误:

TypeError: Expected a Gdk.EventMask, but got int

我应该如何从事件掩码中删除该位?

最佳答案

~ 运算符改变结果类型:

>>> 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))

关于python - Gdk:如何从 Python 中的事件掩码中删除位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14606759/

相关文章:

python - 带日期轴的箭袋或倒钩

python - 如何使用子进程 check_output 获取子进程的 PID

c - 在这种情况下 && 和 & 有什么不同?

c++ - 将整数转换为位

python - 从 python 调用 c++ 函数

Python 自省(introspection) : Automatic wrapping of methods

python - 'gi.repository.Gtk' 对象没有属性 'gdk'

python - 双击检索 TreeView 数据

c++ - 将额外值传递给 GTK+ 中的信号

java - 如何使用按位运算符将多个整数值传递给 Java 函数?