如标题所示,我正在尝试使用Python-gtk捕获Mouse和Keyboard事件.

我可以使用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

希望这可以帮助

标签:gtk,pygtk,gdk,linux,python

来源: https://codeday.me/bug/20191208/2094702.html

linux gtk python,python-Linux上具有pygtk(gtk.gdk)的桌面/根窗口上的键盘/鼠标事件相关推荐

  1. Python ctypes 调用API函数模拟键盘鼠标事件

    在Python编程中, 有时需要模拟键盘或鼠标事件, 自动操作计算机, 比如玩游戏等. 本文介绍使用ctypes模块调用API函数, 模拟键盘鼠标事件的方法. 目录 1.导入ctypes模块 2.通过 ...

  2. win32键盘输入python_windows下python捕捉键盘鼠标事件 pywin32 | 学步园

    最近学习python中, 需要调用gui的wincom组件,网上搜罗了很多相关资料.但是大部分资料都有问题.也许跟python的开源和版本问题有关. 下面我就把网上罗列出来最多的捕捉键盘鼠标事件的代码 ...

  3. python实现按键精灵的功能_pyautogui简介_python中的按键精灵_键盘鼠标模拟

    以下翻译来自官司网说明网站 pyautogui.readthedocs.io pyautogui模块的目的是提供跨平台的自动化键盘鼠标操作.这个模块我们尽可能设计得容易使用.例如,下面的代码都会把鼠标 ...

  4. linux 鼠标 脚本,linux获得键盘鼠标事件,模拟键盘鼠标按键

    linux中键盘鼠标等输入设备通过input子系统实现设备驱动,驱动程序完成向系统报告输入事件,input子系统完成了文件操作接口 linux/input.h定义了输入事件结构体 api 和 按键定义 ...

  5. linux捕获鼠标点击事件文件,linux获得键盘鼠标事件,模拟键盘鼠标按键

    linux中键盘鼠标等输入设备通过input子系统实现设备驱动,驱动程序完成向系统报告输入事件,input子系统完成了文件操作接口 linux/input.h定义了输入事件结构体 api 和 按键定义 ...

  6. python鼠标事件 详解_Python selenium键盘鼠标事件实现过程详解

    引言 ----在实际的web测试工作中,需要配合键盘按键来操作,webdriver的 keys()类提供键盘上所有按键的操作,还可以模拟组合键Ctrl+a,Ctrl+v等. 举例: #cording= ...

  7. python八角图形绘制_(Python)从零开始,简单快速学机器仿人视觉Opencv—第四节:OpenCV处理鼠标事件...

    准备工作 使用工具:Python3.5 涉及包:cv2 numpy 涉及函数 函数:cv2.setMouseCallback() 任务开始 简单的程序,在图片上双击过的位置绘制一个圆圈 任务1.创建鼠 ...

  8. arch linux安装到手机上,archlinux 的真机安装archlinux+deepin桌面系统(上)

    开头 很多人认为Archlinux比较适合稍微了解Linux一点的用户使用,但其实,我没有什么Linux使用经验,也可以拿过来用,就是稍感吃力,这里把自己安装archlinux 的过程发出来. 在安装 ...

  9. linux 输入法无法运行,Linux下中文输入法出现问题的排查步骤

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 使用中文Linux时,一个比较头疼的问题就是中文输入法的安装与配置.目前开发Linux发行版的大多是老外,他们不懂中文, ...

最新文章

  1. 和12岁小同志搞创客开发:手撕代码,做一款遥控灯
  2. 什么是最佳适应算法?
  3. hdu 2586(LCA + 节点间距离)
  4. Java中JDBC进阶教程之数据库的隔离级别!
  5. HDU 2571 命运
  6. 【C语言及程序设计】项目2-15:模块化的简单银行系统设计
  7. js距离单位换算_英语中常用的度量衡等单位,与我们用的不一样,这些差异点快收藏...
  8. 基础省选+NOI 第9部分 网络流
  9. CMS系统模板引擎设计(5):Label应用初探
  10. nedc和epa续航里程什么意思_电动汽车续航能力NEDC、EPA、WTLP什么意思?哪个最硬核?...
  11. python 获取文件大小_Python解决女朋友看电影没字幕的需求
  12. 以太坊的POS共识机制(一)友善的小精灵 Casper
  13. SPSS实现游程检验
  14. VC操作Word书签模板
  15. 百趣生物受邀参加代谢组学及脂质组学质谱技术研讨会
  16. 苹果手机连wifi跳不出来登录网页解决办法
  17. ajax authorization,ajax跨域,_ajax Authorization 鉴权失败,ajax跨域 - phpStudy
  18. Between Us 3 人类的进化
  19. Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported
  20. java ps old gen perm gen_Java 内存模型之堆内存管理

热门文章

  1. python设计模式18-备忘录模式
  2. Go 语言真是现在进大厂的捷径?
  3. Go 切片使用绕坑指南
  4. 解决方案:超卖(Redis原子队列)
  5. springboot+dubbo+nacos开发实战
  6. 深入理解分布式系统原理与设计
  7. Dubbo核心源码之SPI扩展
  8. java使用netty
  9. spring + springmvc + mybatis + mysql 整合使用案例
  10. 一张图展示一段js代码的一生,变量对象、作用域链、闭包、this