使用pyQt写GUI后,如果有键盘快捷键可以改善使用体验,提高效率某些方面的效率。
参考:
1.使用pyqt5实现键盘(含组合键)鼠标事件响应
2.Python matplotlib绘图,使用鼠标滚轮放大/缩小图像
3.【Python】【matplotlib】键鼠响应事件

键盘检测

主窗口继承自PyQt5.QtWidgets或PyQt5.QtWidgets.QMainWindow,在窗口class中重写函数keyPressEvent(self, event)

    def keyPressEvent(self, event):"""重写了键盘检测事件函数。:param event::return:"""print(f'检测按键{event.key()}按下!')if event.key() == QtCore.Qt.Key_Down:pass# your codeelif event.key() == QtCore.Qt.Key_Up:pass# your code elif event.key() == QtCore.Qt.Key_A:pass# your code

如果需要改变主窗口的鼠标滚轮事件就重写函数wheelEvent(self, event)

    def wheelEvent(self, event):"""鼠标滚轮操作:param event: :return:"""# 向后时是-120,向前时是+120angle = event.angleDelta().y()try:if angle < 0:pass# your code else:pass# your code except Exception as e:print(e, 'error from wheelEvent()')

鼠标滚轮放大缩小绘图

在使用matlab plot时候可以通过鼠标选择绘图的大小,重置xlim和ylim,使用matplotlib时候上方会有菜单实现,但是绘制在GUI上就没有工具栏了,需要重写对应事件完成这个功能。参考2中使用

fig = plt.figure()
fig.canvas.mpl_connect('scroll_event', call_back)

绑定了scroll_event的回调函数call_back()。但是在一个figure中有多个canvas时候就需要把canvas这个参数也传递进去。使用labmda表达式1

self.mycanv.mpl_connect('scroll_event', lambda event: self.xylimScale(event, self.mycanv))

而回调函数定义为:

    def xylimScale(self, event, mycanvas):axtemp = event.inaxesx_min, x_max = axtemp.get_xlim()# print(event.x)print(event)fanwei = (x_max - x_min) / 10if event.button == 'up':axtemp.set(xlim=(x_min + fanwei, x_max - fanwei))print('up')elif event.button == 'down':axtemp.set(xlim=(x_min - fanwei, x_max + fanwei))print('down')mycanvas.draw_idle()  # 绘图动作实时反映在图像上

这样实现了鼠标滚轮放大/缩小绘图,但是缩放时候的中心点是x轴中点,要实现鼠标位置点为中心点的缩放还要捕捉鼠标位置坐变换。


  1. matplotlib - 在 fig.canvas.mpl_connect('key_press_event', on_key) 中,如何將參數傳遞給 on_key?, http://hant.ask.helplib.com/python/post_5278040 ↩︎

pyQt-GUI检测键盘操作相关推荐

  1. 怎么检测用户多长时间没有鼠标与键盘操作

    2019独角兽企业重金招聘Python工程师标准>>> 怎么检测用户多长时间没有鼠标与键盘操作 如何检测用户多长时间没有鼠标与键盘操作? 如何检测用户多长时间没有鼠标与键盘操作?   ...

  2. 嵌入式c语言检测键盘,【精华整理】C语言嵌入式系统编程修炼--键盘操作篇

    计算机学的许多知识都具有相通性,因而,不断追赶时髦技术而忽略基本功的做法是徒劳无意的.我们最多需要"精通 "三种语言,最佳拍档是汇编.C.C++(或JAVA),很显然,如果你&qu ...

  3. 通过python里面的pyautogui自动化控制鼠标和键盘操作

    PyAutoGUI是一个纯Python的GUI自动化工具,其目的是可以用程序自动控制鼠标和键盘操作,多平台支持(Windows,OS X,Linux). 安装 pip3 install pyautog ...

  4. matlab 检测键盘,matlab检测键盘

    赵辉<Visual+C++_MATLAB图像处理与识别实用案例精选> 程序代码说明 P0201:MATLAB赋值 P0202:MATLAB中的for循环 P0203:MATLAB中的for ...

  5. [c语言]在程序中检测键盘按键

    如何在程序中检测键盘 首先 我们直接上代码 #include <conio.h> #include <stdio.h> int main() { while (1) { swi ...

  6. 模拟鼠标键盘操作,含硬件模拟技术。

    键盘是我们使用计算机的一个很重要的输入设备了,即使在鼠标大行其道的今天,很多程序依然离不开键盘来操作.但是有时候,一些重复性的,很繁琐的键盘操作总会让人疲惫,于是就有了用程序来代替人们按键的方法,这样 ...

  7. 模拟鼠标键盘操作,含硬件模拟技术。[转]

    模拟鼠标键盘操作,含硬件模拟技术. 键盘是我们使用计算机的一个很重要的输入设备了,即使在鼠标大行其道的今天,很多程序依然离不开键盘来操作.但是有时候,一些重复性的,很繁琐的键盘操作总会让人疲惫,于是就 ...

  8. 模拟鼠标键盘操作,含硬件模拟技术

    键盘是我们使用计算机的一个很重要的输入设备了,即使在鼠标大行其道的今天,很多程序依然离不开键盘来操作.但是有时候,一些重复性的,很繁琐的键盘操作总会让人疲惫,于是就有了用程序来代替人们按键的方法,这样 ...

  9. Python自动化控制鼠标和键盘操作—— PyAutoGUI

    简 介:PyAutoGUI是一个Python语言的键鼠自动化库,简单来说和按键精灵的功能一样.但是因为是Python的类库,所以可以使用Python代码配合一些其他类库完成更加强大的功能,本文对PyA ...

最新文章

  1. PAT_B_1027 打印沙漏
  2. 第二阶段个人总结11
  3. 没有任何基础的可以学python吗-今天就来告诉你,没有编程基础的人适不适合学python...
  4. 在Python这条路上踩过的坑(1)
  5. PHP开发一个简单的成绩录入系统
  6. mysql频繁查询出错_Mysql数据库频繁查询错误解决方案
  7. mysql中什么是空集合_mysql 中使用笛卡尔积 避免其中一方为空集时结果就是空集的方法...
  8. 曲线拟合的线性最小二乘法
  9. springMVC接受对象集合,name数组
  10. atitit.php 流行框架 前三甲为:Laravel、Phalcon、Symfony2 attilax 总结
  11. vue调用日期_Vue 前端开发——打印功能实现
  12. mac终端 install_Mac常用终端命令
  13. cropper.js 裁剪图片并上传(文档翻译+demo)
  14. Nginx配置使用upstream负载均衡和proxy_cache缓存
  15. 在局域网被网络管理员限制了远程连接的默认端口3389,导致无法远程桌面连接
  16. 再见了, 达叔!我用Python回顾一代喜剧大师203部作品,太经典了!
  17. 蜀门一直显示连接服务器,蜀门进不去点进入之后,出现无法连接服务器 – 手机爱问...
  18. JVM结构和JVM的架构模型以及JAVA生命周期介绍
  19. API(15)——打印系统开发(52)——WinForm开发(62)——C#通过调用WinApi打印PDF文档类,服务器PDF打印、IIS PDF打印
  20. Android apps 拍立知-基于百度Ai的图像识别与tts语音合成(介绍)

热门文章

  1. BigDecimal比较大小工具类
  2. 靠肝的爬塔不优雅——养成手游《古今江湖》
  3. java阿里面试官直接告诉你录取答案,你还在犹豫那就晚了
  4. android simpleperf工具介绍
  5. 劝酒的话(男人必修)
  6. 清扫重复文件夹的数据刷
  7. 仅需一个app就能像homeassistant一样实现跨品牌联动?
  8. java rgb转yuv_RGB 转化YUV | 学步园
  9. pyQt5 帮助手册的使用
  10. C# 判断有向图是否存在环