我最近学习使用PyGObject。我可以听一个"运动 - 通知 - 事件"使用Gtk.Widget获取鼠标移动事件。但是,它不能在窗口外工作,我需要在窗口外面的鼠标事件,。也许我应该问一个根窗口如何监听motion-notify-event。 我认为超时功能可以做到,但不是最好的方法。 我应该怎么做?
答案 0 :(得分:0)
如何在GTK中获取全局鼠标事件?
我真的不知道如何使用GTK,但你可以通过其他方法轻松完成。
1)您可以在python程序中创建一个记录鼠标位置的线程。 2)你可以(使用gtk)获得你的窗口位置和大小。
所以你有你需要知道的一切......在linux下有一些程序可以让你捕获鼠标位置等。
此命令cnee --record --mouse | awk '/7,4,0,0,1/ { system("xdotool getmouselocation") }'
将在您每次单击时打印鼠标位置。 (你必须安装cnee和xdotool)
例如,您可以将该输出写入文件并reed文件的最后一行..或 如果你不想传递文件,你可以直接在python中执行命令并检索它的输出:
(python 2.7)
>>> import os
>>> from subprocess import Popen
>>> mouse=os.popen("xdotool getmouselocation")
>>> mouse=str(mouse.read())
>>> print mouse
x:838 y:439 screen:0
然后你用字符串播放一下,你会得到x,y和屏幕。
使用1)和2)您可以知道鼠标是在窗口内还是在窗外。