1 import sys
2 from PyQt5 import QtWidgets,QtCore
3 from PyQt5.QtCore import Qt
4 from PyQt5.uic.properties import QtGui
5
6 key_list=['Qt.ControlModifier','Qt.ShiftModifier','Qt.AltModifier','Qt.Key_A','Qt.Key_B','Qt.Key_C','Qt.Key_D',\
7 'Qt.Key_E','Qt.Key_F','Qt.Key_G','Qt.Key_H','Qt.Key_I','Qt.Key_J','Qt.Key_K','Qt.Key_L','Qt.Key_M','Qt.Key_N\
8 ','Qt.Key_O','Qt.Key_P','Qt.Key_Q','Qt.Key_R','Qt.Key_S','Qt.Key_T','Qt.Key_U','Qt.Key_V','Qt.Key_W','Qt.Key_X\
9 ','Qt.Key_Y','Qt.Key_Z']
10
11 class Mywindow(QtWidgets.QWidget):
12 def __init__(self):
13 super(Mywindow, self).__init__()
14 self.create_Ui()
15
16 def create_Ui(self):
17
18 self.label= QtWidgets.QLabel(self)
19 label = self.label
20 label.setText("欢迎光临")
21 label.move(250,150)
22 label.resize(100,50)
23 label.setStyleSheet("background-color:yellow;color:blue;border: 1px solid gray;border-radius:5px")
24
25
26 def keyPressEvent(self, evt):
27 t="显示按键"
28
29 for i in key_list:
30
31 if evt.modifiers() == eval(i): #将获取的键值与序列中的地址比较
32 t = i.split('.')[-1].split('Mod')[0] #将序列中的值进行分割:即将字符串中'.'之前和'Mod'之后的字符舍去,剩余字符赋值给t;
33 break
34 elif evt.key() == eval(i):
35 t = i.split('_')[-1] #将序列中'_'前的字符舍去,并赋值给t
36 break
37 else:
38 t = evt.text()
39 self.label.setText("按键:"+t)
40 self.label.adjustSize()
41
42
43
44 app = QtWidgets.QApplication(sys.argv)
45
46 window = Mywindow()
47 window.resize(500,500)
48 window.move(350,150)
49 window.setWindowTitle("欢迎光临")
50 window.grabKeyboard()
51
52 # window.setMouseTracking(True)
53 window.show()
54
55 sys.exit(app.exec_())
56
57

另外,判断 组合功能键可以用:

if evt.modifiers() == Qt.ControlModifier | Qt.ShiftModifier  and evt.key() == Qt.Key_S:

来判断是否按下了 “Ctrl+Shift+S"组合键

按键显示器(判断键盘监听器获得的值为普通Key还中modifiers)的更多相关文章

  1. js获取及判断键盘按键的方法

    这篇文章主要介绍了js获取及判断键盘按键的方法,涉及JavaScript键盘事件的获取及键值的判定技巧,具有一定参考借鉴价值,需要的朋友可以参考下   本文实例讲述了js获取及判断键盘按键的方法.分享 ...

  2. 操作系统学习笔记10 | I/O、显示器与键盘

    从这一部分开始介绍操作系统的设备驱动,操作系统通过文件系统的抽象驱动设备让用户能够使用显示器.键盘等交互工具.并讲解printf和scanf是如何实现敲下键盘将字符显示到屏幕上的. 参考资料: 课程: ...

  3. WPF - 监听判断键盘组合键的按下

    对于键盘事件PreviewKeyDown.PreviewKeyUp.KeyDown.KeyUp,在其中检查当次事件是哪个按键触发的很简单,只需要判断KeyEventArgs类型的事件参数e的Key属性 ...

  4. Java学习-030-JSON 之四 -- 判断 JSONObject 是否包含键值对

    前文对获取 JSON 数据封装方法,使之可通过类似于 cssSelector 的方法获取 JSON 数据,使获取数据变得简单.敬请参阅:模仿 cssSelector 封装读取 JSON 数据方法. 在 ...

  5. GUI按键绑定到键盘和打印组件

    首先说明一点 按键绑定到键盘和设置快捷键是不一样的 按键绑定键盘是按键有了和button一样的功能,没有焦点时也能使用(WHEN_IN_FOCUSED_WINDOW),甚至有时候单独作为一个事件(有自 ...

  6. ios如何判断键盘是否已经显示

    ios如何判断键盘是否已经显示   在群里看到有人问:ios如何判断键盘已经显示在界面上. 其实这个解决很简单: 写一个单例来管理键盘的状态. 这个单例在初始化方法init种监听2个事件,分别是 UI ...

  7. Python enum 枚举 判断 key(键) 或者 value(值)是否在枚举中

    Python enum 枚举 判断 key(键) 或者 value(值)是否在枚举中 python 的基本用法请浏览:https://www.cnblogs.com/ibingshan/p/98564 ...

  8. 通过键盘控制改变物体transform值

    通过键盘控制改变物体transform值 private Vector3 trans; //使用Rotate绕y 轴旋转 transform.Rotate(new Vector3(0,Input.Ge ...

  9. SQLServer判断指定列的默认值是否存在,并修改默认值

    SQLServer判断指定列的默认值是否存在,并修改默认值 2008年10月21日 星期二 下午 12:08 if exists(select A.name as DefaultName,B.name ...

随机推荐

  1. swap交换2变量

    #define swap(x,y) {(x)=(x)+(y); (y)=(x)-(y); (x)=(x)-(y);} void swap(int i, int offset){ int temp; t ...

  2. f5添加多个vlan的方法

    1.方法一 方法二: F5不更改配置,核心添加路由 ip route 10.160.101.0 255.255.255.0 10.160.100.10

  3. cassandra权威指南读书笔记--安全

    认证和授权driver,JMX和cassandra服务器支持SSL/TLS,cassandra节点间也支持SSL/TLS.密码认证器cassandra还支持自定义,可插拔的认证机制.默认的认证器:or ...

  4. vim快捷键收藏版

    总述 附加一篇介绍文哈,关于vim快捷键的介绍.vim和vscode 到底谁更好用,大家争得不可开交,然后我就在vscode里面装了一个vim插件,完美得解决了这个问题,用完之后觉得真香,所以我就整理 ...

  5. Codeforces Round #635 (Div. 2)

    Contest Info Practice Link Solved A B C D E F 4/6 O O Ø  Ø     O 在比赛中通过 Ø 赛后通过 ! 尝试了但是失败了 - 没有尝试 Sol ...

  6. PAT(乙级)2020年春季考试

    比赛链接:https://pintia.cn/market/item/1287964475579875328 7-1 对称日 题解 模拟,注意年月日不足位在前面补零. 代码 #include < ...

  7. 矩阵树定理(Kirchhoff || Laplace)初探——Part 1(无向图计数)

    必备知识: 高斯消元,图论基本知识(好像就这...(雾)) 这里是无向图部分,请不要走错场... 定义 我们将邻接矩阵定义为矩阵A(u,v),我想邻接矩阵就不用再多说了: 我们将每个点的度数矩阵定义为 ...

  8. Consonant Fencity Gym - 101612C 暴力二进制枚举 Intelligence in Perpendicularia Gym - 101612I 思维

    题意1: 给你一个由小写字母构成的字符串s,你可以其中某些字符变成大写字母.如果s中有字母a,你如果想把a变成大写,那s字符串中的每一个a都要变成A 最后你需要要出来所有的字符对,s[i]和s[i-1 ...

  9. 使用eclipse搭建第一个java web应用

    一. 首先是eclipse得下载,你要下载Eclipse IDE for Java EE这种类型的,我之前下载的Eclipse IDE for Enterprise Java Developers是官 ...

  10. python 引用(import)文件夹下的py文件

    importlib.import_module动态导入模块: python中schedule模块的简单使用 || importlib.import_module动态导入模块 先看一下文件目录 1.同级 ...