如何使用Python Xlib监控鼠标事件而不是捕获它们?

时间:2010-04-06 14:37:20

标签: python event-handling xlib

我需要在Python中使用Xlib监视和过滤鼠标事件。

到目前为止,我发现此代码接收事件,但未传递它们,因此我实际上无法再对鼠标执行任何操作。

from Xlib.display import Display
from Xlib import X

display = Display(':0')
root = display.screen().root

root.grab_pointer(True, X.ButtonPressMask | X.ButtonReleaseMask, X.GrabModeAsync, X.GrabModeAsync, 0, 0, X.CurrentTime)

while True:
    print "Event:"
    print display.next_event()

我发现的替代品正在使用

root.change_attributes(event_mask=X.ButtonPressMask | X.ButtonReleaseMask)

根本不起作用或对Xlib使用RECORD扩展,我无法弄清楚它是如何工作的。

2 个答案:

答案 0 :(得分:2)

链接被破坏了。我认为这是最新的一个:http://github.com/pepijndevos/PyMouse/blob/master/pymouse/unix.py第58行

答案 1 :(得分:0)

答案似乎是将Xlib与RECORD一起使用,结果可以在这里看到: http://github.com/pepijndevos/PyMouse/blob/master/unix.py#L38