百度的,可以用,只写了少量例子,其它的按键需要按需自行添加上去。 [Python] 纯文本查看 复制代码from PyQt5.QtWidgets import QApplication, QWidget,QLineEdit,QPushButton import sys from PyQt5.QtGui import QCursor from PyQt5.QtCore import Qt from PyQt5.QtGui import QPainter, QPixmap class LineEdit(QLineEdit): def keyPressEvent(self, QKeyEvent): # 键盘某个键被按下时调用 #参数1 控件 if QKeyEvent.key()== Qt.Key_A: #判断是否按下了A键 #key() 是普通键 print('按下了A键') self.setText('按下了A键') if QKeyEvent.key()== Qt.Key_B: #判断是否按下了A键 #key() 是普通键 print('按下了B键') self.setText('按下了B键') 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键') self.setText('按下了Ctrl-A键') if QKeyEvent.modifiers() == Qt.ControlModifier|Qt.ShiftModifier and QKeyEvent.key() == Qt.Key_A: # 三键组合 print('按下了Ctrl+Shift+A键') self.setText('按下了Ctrl+Shift+A键') class win(QWidget): #创建一个类,为了集成控件 def __init__(self): super().__init__() self.resize(600,600) self.setWindowTitle('事件学习') self.num = 0 self.LineEdit = LineEdit('', self) self.LineEdit.grabKeyboard() #控件开始捕获键盘 # 只有控件开始捕获键盘,控件的键盘事件才能收到消息 if __name__=='__main__': app=QApplication(sys.argv) #创建应用 w=win() w.show() sys.exit(app.exec_())