视频教程: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-键盘事件的更多相关文章

  1. 【PyQt5-Qt Designer】鼠标+键盘事件

    重定义鼠标响应+键盘响应事件 一,每个事件都被封装成相应的类: pyqt中,每个事件类型都被封装成相应的事件类,如鼠标事件为QMouseEvent,键盘事件为QKeyEvent等.而它们的基类是QEv ...

  2. html中键盘事件----在路上(16)

    键盘事件,这里以onkeyup为例: 解析:当在一个input中输入文本时,在另一个div中输出文本 在下面是本人写的小demo,供分享. 代码如下: <!DOCTYPE html> &l ...

  3. js键盘事件和焦点事件

    键盘事件onkeydown //当键盘按下的时候触发onkeyup //但键盘抬起的时候触发event.keyCode //数字类型 键盘按键的键值功能键 ctrlkey shiftkey altke ...

  4. 深入理解DOM事件类型系列第二篇——键盘事件

    × 目录 [1]类型 [2]顺序 [3]按键信息[4]应用 前面的话 鼠标和键盘是电脑端主要的输入设备,上篇介绍了鼠标事件,本文将详细介绍键盘事件 类型 键盘事件用来描述键盘行为,主要有keydown ...

  5. jquery键盘事件总结

    在工作中在发现同事在写输入密码按键的相关js效果时,发现自己对于这块很是不了解,这几天特地了解了一下,进行以下总结: 一.首先要知道键盘事件的几个属性: 1.keydown():在键盘按下时触发. 2 ...

  6. C#/winform 自动触发鼠标、键盘事件

    要在C#程序中触发鼠标.键盘事件必须要调用windows函数. 一.鼠标事件的触发 1.引用windows函数mouse_event /// <summary> /// 鼠标事件 /// ...

  7. js键盘事件

    弱鸡今天在写键盘事件,发生一个小bug,排查了1小时(">皿<)可恶的浏览器竟然还不报错!!原因是将e.ctrlKey写成了e.ctrLKey,o(゚Д゚)っ 想想都要生气< ...

  8. Javascript 事件对象(六)键盘事件

    keyCode获取用户按下键盘的哪个按键 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Conte ...

  9. js键盘事件全面控制详解

      js键盘事件全面控制 主要分四个部分第一部分:浏览器的按键事件第二部分:兼容浏览器第三部分:代码实现和优化第四部分:总结 第一部分:浏览器的按键事件 用js实现键盘记录,要关注浏览器的三种按键事件 ...

  10. windows程序里新窗体不在任务栏显示,无标题拖动,键盘事件,始终显示在主窗体上面,单实例运行等

    不显示在任务栏,Alt+Tab也不显示 protected override CreateParams CreateParams { get { const int WS_EX_APPWINDOW = ...

随机推荐

  1. 关于ListBox在Grid中无法充满的问题

    WPF布局的时候发现一个问题,ListBox放在Grid中的时候,老是无法充满整个Grid,但是查看代码也没有设置相关的属性,原来在设置ListBox之前首先要让ListBox的容器充满,然后List ...

  2. Java微信二次开发(四)

    自定义文字菜单,暂时先实现一个根据用户输入城市名称来查询邮政编码和查询区号的功能 需要导入库:mysql-connector-java-5.0.8-bin.jar 第一步:利用Navicat新建一个用 ...

  3. 如何禁止复制电脑文件到U盘、禁止U盘拷贝文件

    在公司局域网中,有时候我们处于保护电脑文件安全和商业机密的需要,会禁止局域网电脑使用U盘.禁用USB存储设备:或者禁止通过U盘复制电脑文件.禁止U盘拷贝公司电脑文件.那么,怎样实现呢?本文提供两种方法 ...

  4. PHP IF ELSE简化/三元一次式的使用

    一般我们会这样写: <? if($_GET['time']==null) { $time = time(); } else { $time = $_GET['time']; } echo $ti ...

  5. CAP定理与BASE理论

    1. CAP定理 C:Consistency,一致性 A:Availability,可用性 P:Partition tolerance,分区容错性 CAP定理,指的是在一个分布式系统中,一致性.可用性 ...

  6. gbk、utf-8、utf8mb4区别

    1. 存储大小(1). GBK编码专门用来解决中文编码的,是双字节的.不论中英文都是双字节的.(2). UTF-8 编码是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用2 ...

  7. BZOJ1222[HNOI2001]产品加工——DP

    题目描述 某加工厂有A.B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成.由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时间会不同,若同时由两台机器共同进行加工 ...

  8. HDU4288-STL模拟

    给你插入,删除的操作,维护一个降序排列的表,查询所有下标模5等于3的元素和. 2012年成都网络赛的一道签到题.但是还是搜了题解才做出来了,意志不坚定啊... 这道题给10s的时间,做法多种多样. 最 ...

  9. [树链剖分]hihocoder1883

    描述 有一个无向图,有n个点,m1条第一类边和m2条第二类边.第一类边有边权,第二类边无边权.请为第二类的每条边定义一个边权,使得第二类边可能全部出现在该无向图的最小生成树上,同时要求第二类边的边权总 ...

  10. 自学Linux Shell12.2-test命令

    点击返回 自学Linux命令行与Shell脚本之路 12.2-test命令 if-then语句不能测试命令退出状态码之外的条件,test命令提供了在if-then语句中测试不同条件的途径. 如果tes ...