pyqt5-键盘事件
视频教程:https://v.qq.com/x/page/p08592bhsag.html
keyPressEvent(QKeyEvent) 键盘按下时调用
keyReleaseEvent(QKeyEvent) 键盘释放时调用
from PyQt5.QtWidgets import QApplication, QWidget,QLabel,QPushButton
import sys
from PyQt5.QtGui import QCursor
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPainter, QPixmap class Label(QLabel):
def keyPressEvent(self, QKeyEvent): # 键盘某个键被按下时调用
#参数1 控件
if QKeyEvent.key()== Qt.Key_A: #判断是否按下了A键
#key() 是普通键
print('按下了A键') if QKeyEvent.modifiers()==Qt.ControlModifier and QKeyEvent.key()== Qt.Key_A:#两键组合
#modifiers() 判断修饰键
#Qt.NoModifier 没有修饰键
#Qt.ShiftModifier Shift键被按下
#Qt.ControlModifier Ctrl键被按下
#Qt.AltModifier Alt键被按下
print('按下了Ctrl-A键') if QKeyEvent.modifiers() == Qt.ControlModifier|Qt.ShiftModifier and QKeyEvent.key() == Qt.Key_A: # 三键组合
print('按下了Ctrl+Shift+A键') class win(QWidget): #创建一个类,为了集成控件
def __init__(self):
super().__init__()
self.resize(600,600)
self.setWindowTitle('事件学习')
self.num=0
self.label=Label('标签',self)
self.label.move(100,100)
self.label.grabKeyboard() #控件开始捕获键盘
# 只有控件开始捕获键盘,控件的键盘事件才能收到消息 if __name__=='__main__':
app=QApplication(sys.argv) #创建应用
w=win()
w.show()
sys.exit(app.exec_())
self.label.grabKeyboard() #控件开始捕获键盘
#只有控件开始捕获键盘,控件的键盘事件才能收到消息.
self.label.releaseKeyboard() #停止捕获键盘
键的编码:
键 | 十六进制 | 十进制 | Qt枚举值 | 键 | 十六进制 | 十进制 | Qt枚举值 |
ESC | 0x01000000 | 16777216 | F1 | 0x01000030 | 16777264 | ||
F2 | 0x01000031 | 16777265 | F3 | 0x01000032 | 16777266 | ||
F4 | 0x01000033 | 16777267 | F5 | 0x01000034 | 16777268 | ||
F6 | 0x01000035 | 16777269 | F7 | 0x01000036 | 16777270 | ||
F8 | 0x01000037 | 16777271 | F9 | 0x01000038 | 16777272 | ||
F10 | 0x01000039 | 16777273 | F11 | 0x0100003a | 16777274 | ||
F12 | 0x0100003b | 16777275 | Pause Break | 0x01000008 | 16777224 | ||
` | 0x60 | 96 | Prt Sc | ||||
1 | 0x31 | 49 | Delete | 0x01000007 | 16777223 | ||
2 | 0x32 | 50 | 3 | 0x33 | 51 | ||
4 | 0x34 | 52 | 5 | 0x35 | 53 | ||
6 | 0x36 | 54 | 7 | 0x37 | 55 | ||
8 | 0x38 | 56 | 9 | 0x39 | 57 | ||
0 | 0x30 | 48 | - | 0x2d | 45 | ||
= | 0x3d | 61 | Backspace | 0x01000003 | 16777219 | ||
Tab | 0x01000001 | 16777217 | q | 0x51 | 81 | ||
w | 0x57 | 87 | e | 0x45 | 69 | ||
r | 0x52 | 82 | t | 0x54 | 84 | ||
y | 0x59 | 89 | u | 0x55 | 85 | ||
i | 0x49 | 73 | o | 0x4f | 79 | ||
p | 0x50 | 80 | [ | 0x5b | 91 | ||
] | 0x5d | 93 | \ | 0x5c | 92 | ||
a | 0x41 | 65 | Caps Lock | 0x01000024 | 16777252 | ||
s | 0x53 | 83 | d | 0x44 | 68 | ||
f | 0x46 | 70 | g | 0x47 | 71 | ||
h | 0x48 | 72 | j | 0x4a | 74 | ||
k | 0x4b | 75 | l 小写l | 0x4c | 76 | ||
; | 0x3b | 59 | ' | 0x27 | 39 | ||
Enter | 0x01000004 | 16777220 | Shift | 0x01000020 | 16777248 | ||
z | 0x5a | 90 | x | 0x58 | 88 | ||
c | 0x43 | 67 | v | 0x56 | 86 | ||
b | 0x42 | 66 | n | 0x4e | 78 | ||
m | 0x4d | 77 | , | 0x2c | 44 | ||
. | 0x2e | 46 | / | 0x2f | 47 | ||
Ctrl | 0x01000021 | 16777249 | Fn | ||||
win | 0x01000022 | 16777250 | Alt | 0x01000023 | 16777251 | ||
空格 | 0x20 | 32 | 菜单键 | 0x01000055 | 16777301 | ||
向上键 | 0x01000013 | 16777235 | Qt.Key_Up | 向左键 | 0x01000012 | 16777234 | Qt.Key_Left |
向下键 | 0x01000015 | 16777237 | Key_Down | 向右键 | 0x01000014 | 16777236 | Key_Right |
组合符号 | |||||||
! | 0x21 | 33 | Key_Exclam | @ | 0x40 | 64 | Key_At |
注:可以在QtAssistant中输入Qt::Key找到所有键盘值
pyqt5-键盘事件的更多相关文章
- 【PyQt5-Qt Designer】鼠标+键盘事件
重定义鼠标响应+键盘响应事件 一,每个事件都被封装成相应的类: pyqt中,每个事件类型都被封装成相应的事件类,如鼠标事件为QMouseEvent,键盘事件为QKeyEvent等.而它们的基类是QEv ...
- html中键盘事件----在路上(16)
键盘事件,这里以onkeyup为例: 解析:当在一个input中输入文本时,在另一个div中输出文本 在下面是本人写的小demo,供分享. 代码如下: <!DOCTYPE html> &l ...
- js键盘事件和焦点事件
键盘事件onkeydown //当键盘按下的时候触发onkeyup //但键盘抬起的时候触发event.keyCode //数字类型 键盘按键的键值功能键 ctrlkey shiftkey altke ...
- 深入理解DOM事件类型系列第二篇——键盘事件
× 目录 [1]类型 [2]顺序 [3]按键信息[4]应用 前面的话 鼠标和键盘是电脑端主要的输入设备,上篇介绍了鼠标事件,本文将详细介绍键盘事件 类型 键盘事件用来描述键盘行为,主要有keydown ...
- jquery键盘事件总结
在工作中在发现同事在写输入密码按键的相关js效果时,发现自己对于这块很是不了解,这几天特地了解了一下,进行以下总结: 一.首先要知道键盘事件的几个属性: 1.keydown():在键盘按下时触发. 2 ...
- C#/winform 自动触发鼠标、键盘事件
要在C#程序中触发鼠标.键盘事件必须要调用windows函数. 一.鼠标事件的触发 1.引用windows函数mouse_event /// <summary> /// 鼠标事件 /// ...
- js键盘事件
弱鸡今天在写键盘事件,发生一个小bug,排查了1小时(">皿<)可恶的浏览器竟然还不报错!!原因是将e.ctrlKey写成了e.ctrLKey,o(゚Д゚)っ 想想都要生气< ...
- Javascript 事件对象(六)键盘事件
keyCode获取用户按下键盘的哪个按键 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Conte ...
- js键盘事件全面控制详解
js键盘事件全面控制 主要分四个部分第一部分:浏览器的按键事件第二部分:兼容浏览器第三部分:代码实现和优化第四部分:总结 第一部分:浏览器的按键事件 用js实现键盘记录,要关注浏览器的三种按键事件 ...
- windows程序里新窗体不在任务栏显示,无标题拖动,键盘事件,始终显示在主窗体上面,单实例运行等
不显示在任务栏,Alt+Tab也不显示 protected override CreateParams CreateParams { get { const int WS_EX_APPWINDOW = ...
随机推荐
- 关于ListBox在Grid中无法充满的问题
WPF布局的时候发现一个问题,ListBox放在Grid中的时候,老是无法充满整个Grid,但是查看代码也没有设置相关的属性,原来在设置ListBox之前首先要让ListBox的容器充满,然后List ...
- Java微信二次开发(四)
自定义文字菜单,暂时先实现一个根据用户输入城市名称来查询邮政编码和查询区号的功能 需要导入库:mysql-connector-java-5.0.8-bin.jar 第一步:利用Navicat新建一个用 ...
- 如何禁止复制电脑文件到U盘、禁止U盘拷贝文件
在公司局域网中,有时候我们处于保护电脑文件安全和商业机密的需要,会禁止局域网电脑使用U盘.禁用USB存储设备:或者禁止通过U盘复制电脑文件.禁止U盘拷贝公司电脑文件.那么,怎样实现呢?本文提供两种方法 ...
- PHP IF ELSE简化/三元一次式的使用
一般我们会这样写: <? if($_GET['time']==null) { $time = time(); } else { $time = $_GET['time']; } echo $ti ...
- CAP定理与BASE理论
1. CAP定理 C:Consistency,一致性 A:Availability,可用性 P:Partition tolerance,分区容错性 CAP定理,指的是在一个分布式系统中,一致性.可用性 ...
- gbk、utf-8、utf8mb4区别
1. 存储大小(1). GBK编码专门用来解决中文编码的,是双字节的.不论中英文都是双字节的.(2). UTF-8 编码是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用2 ...
- BZOJ1222[HNOI2001]产品加工——DP
题目描述 某加工厂有A.B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成.由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时间会不同,若同时由两台机器共同进行加工 ...
- HDU4288-STL模拟
给你插入,删除的操作,维护一个降序排列的表,查询所有下标模5等于3的元素和. 2012年成都网络赛的一道签到题.但是还是搜了题解才做出来了,意志不坚定啊... 这道题给10s的时间,做法多种多样. 最 ...
- [树链剖分]hihocoder1883
描述 有一个无向图,有n个点,m1条第一类边和m2条第二类边.第一类边有边权,第二类边无边权.请为第二类的每条边定义一个边权,使得第二类边可能全部出现在该无向图的最小生成树上,同时要求第二类边的边权总 ...
- 自学Linux Shell12.2-test命令
点击返回 自学Linux命令行与Shell脚本之路 12.2-test命令 if-then语句不能测试命令退出状态码之外的条件,test命令提供了在if-then语句中测试不同条件的途径. 如果tes ...