gpt4 book ai didi

python - Linux 上使用 pygtk (gtk.gdk) 的桌面/根窗口上的键盘/鼠标事件

转载 作者:太空狗 更新时间:2023-10-29 11:06:07 27 4
gpt4 key购买 nike

如标题所述,我正在尝试使用 Python-gtk 捕获鼠标和键盘事件。

我可以使用 python-xlib 轻松完成此操作:

    self.display = display.Display()
self.screen = self.display.screen()
self.root_window = self.screen.root

self.root_window.grab_pointer(1,
X.ButtonPressMask | X.ButtonReleaseMask | X.Button1MotionMask,
X.GrabModeAsync,
X.GrabModeAsync,
X.NONE, X.NONE,
X.CurrentTime)

self.root_window.grab_keyboard(1,
X.GrabModeAsync,
X.GrabModeAsync,
X.CurrentTime)

我看到模拟使用 gtk.gdk.* 函数,但我似乎无法在主桌面窗口上捕获事件。这能做到吗?

这就是我试图完成任务的方式...(ALL_EVENTS_MASK 是一种绝望的行为;])

    self.root_window = gtk.gdk.get_default_root_window()
self.root_window.set_events(gtk.gdk.ALL_EVENTS_MASK)
gtk.gdk.event_handler_set(self.filter_callback)
gtk.main()

def filter_callback (self, *args):
print args

最佳答案

这是我刚刚做的一个例子,您可以以此为基础:

import gtk


def on_key_press(widget, data=None):
print "click"

if __name__ == '__main__':
w = gtk.Window()

# Connect the callback on_key_press to the signal key_press.
w.connect("key_press_event", on_key_press)
# Make the widget aware of the signal to catch.
w.set_events(gtk.gdk.KEY_PRESS_MASK)

w.show_all()

gtk.main()

现在启动脚本并单击任何关键字键等(输出):

$ python gtk_script.py 
click
click
click
click

希望对你有帮助

关于python - Linux 上使用 pygtk (gtk.gdk) 的桌面/根窗口上的键盘/鼠标事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4542152/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com