按键显示器(判断键盘监听器获得的值为普通Key还中modifiers)
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)的更多相关文章
- js获取及判断键盘按键的方法
这篇文章主要介绍了js获取及判断键盘按键的方法,涉及JavaScript键盘事件的获取及键值的判定技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了js获取及判断键盘按键的方法.分享 ...
- 操作系统学习笔记10 | I/O、显示器与键盘
从这一部分开始介绍操作系统的设备驱动,操作系统通过文件系统的抽象驱动设备让用户能够使用显示器.键盘等交互工具.并讲解printf和scanf是如何实现敲下键盘将字符显示到屏幕上的. 参考资料: 课程: ...
- WPF - 监听判断键盘组合键的按下
对于键盘事件PreviewKeyDown.PreviewKeyUp.KeyDown.KeyUp,在其中检查当次事件是哪个按键触发的很简单,只需要判断KeyEventArgs类型的事件参数e的Key属性 ...
- Java学习-030-JSON 之四 -- 判断 JSONObject 是否包含键值对
前文对获取 JSON 数据封装方法,使之可通过类似于 cssSelector 的方法获取 JSON 数据,使获取数据变得简单.敬请参阅:模仿 cssSelector 封装读取 JSON 数据方法. 在 ...
- GUI按键绑定到键盘和打印组件
首先说明一点 按键绑定到键盘和设置快捷键是不一样的 按键绑定键盘是按键有了和button一样的功能,没有焦点时也能使用(WHEN_IN_FOCUSED_WINDOW),甚至有时候单独作为一个事件(有自 ...
- ios如何判断键盘是否已经显示
ios如何判断键盘是否已经显示 在群里看到有人问:ios如何判断键盘已经显示在界面上. 其实这个解决很简单: 写一个单例来管理键盘的状态. 这个单例在初始化方法init种监听2个事件,分别是 UI ...
- Python enum 枚举 判断 key(键) 或者 value(值)是否在枚举中
Python enum 枚举 判断 key(键) 或者 value(值)是否在枚举中 python 的基本用法请浏览:https://www.cnblogs.com/ibingshan/p/98564 ...
- 通过键盘控制改变物体transform值
通过键盘控制改变物体transform值 private Vector3 trans; //使用Rotate绕y 轴旋转 transform.Rotate(new Vector3(0,Input.Ge ...
- SQLServer判断指定列的默认值是否存在,并修改默认值
SQLServer判断指定列的默认值是否存在,并修改默认值 2008年10月21日 星期二 下午 12:08 if exists(select A.name as DefaultName,B.name ...
随机推荐
- Cmder的findstr问题
在环境变量中加入C:\windows\system32即可
- Go语言学习笔记(2)——零散的话题(反射)
这部分是<Go语言编程>这本书的第9章的内容.书中给该章节的定位是一个文章集,其包含了一些Go语言中比较少涉及,或是比较深入的讨论的内容.因为第一节就是反射,而反射在我看来是比较重要的内容 ...
- 配置七牛云图床 + Typora
配置七牛云图床工具 使用图床+Typora可以方便快捷的撰写图文博客 我这里以七牛云进行示例,讲解如何去配置 七牛云是属于收费图床,目前还在测试,不过对于使用量不大的我来说应该免费是足够了的,不过需要 ...
- Java 容器系列总结
为什么要使用集合 当我们需要保存一组类型相同的数据的时候,我们应该是用一个容器来保存,这个容器就是数组,但是,使用数组存储对象具有一定的弊端, 因为我们在实际开发中,存储的数据的类型是多种多样的,于是 ...
- Aery的UE4 C++游戏开发之旅(5)字符&字符串
目录 TCHAR 字符 使用TEXT()宏包裹字符串字面量 转换字符编码 FString 字符串 FString 剖析 FString 使用 FName 字符串 FName 剖析 FName 使用 F ...
- 1150 Travelling Salesman Problem
The "travelling salesman problem" asks the following question: "Given a list of citie ...
- hdu4348 To the moon (主席树 || 离线线段树)
Problem Description Background To The Moon is a independent game released in November 2011, it is a ...
- c语言文件的读取和写入
文件打开类型: 文件打开输出就用: 1 #include <stdio.h> 2 3 int main() 4 { 5 FILE *fp = NULL; 6 7 fp = fopen(&q ...
- Long Long Message POJ - 2774 后缀数组
The little cat is majoring in physics in the capital of Byterland. A piece of sad news comes to him ...
- C# 同步和异步(概念理解)
C# 同步和异步 IO 概念区分 四个相关概念: 同步(Synchronous) 异步( Asynchronous) 阻塞( Blocking ) 非阻塞( Nonblocking) 同步异步图解 ...