按键显示器(判断键盘监听器获得的值为普通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"组合键

posted @ 2021-02-06 17:43  写BUG的猪  阅读(129)  评论(0)    收藏  举报