软硬件环境
- Windows 10 64bit
- Anaconda3 with python 3.8
- PyQt5 5.15
前言
前一节,我们介绍了鼠标事件,本节,介绍键盘事件,它也是 GUI
操作的重要手段,如常见的 F1
键显示帮助、ctrl+c
复制、ctrl+v
粘贴等。
键盘按下弹起
键盘按键的按下和弹起对应的事件是 keyPressEvent
和 keyReleaseEvent
,如果需要在事件发生后进行相应的逻辑处理,在窗口中只需要重写这两个方法即可。
def keyPressEvent(self, event):
# 判断按下的是什么键
if event.key() == Qt.Key_D:
print('keyPressEvent, Key_D')
# ctrl 修饰键
if event.modifiers() & Qt.ControlModifier:
print('Ctrl+D')
# alt 修饰键
elif event.modifiers() & Qt.AltModifier:
print('Alt+D')
# shift 修饰键
elif event.modifiers() & Qt.ShiftModifier:
print('Shift+D')
def keyReleaseEvent(self, event):
print('keyReleaseEvent')
快捷键设置
这里,我们给界面中的按钮设置一个快捷键,对应的操作是点击
self.pushButton.clicked.connect(self.onClick)
# 给按钮操作设置一个快捷键A
self.pushButton.setShortcut(QKeySequence(Qt.Key_A))
# 或者这样
# self.shortcut_button = QShortcut(QKeySequence('Ctrl+S'), self)
# self.shortcut_button.activated.connect(self.onClick)
这样,当焦点在界面范围内,按下字母 A
键,就相当于点击了界面上的按钮
源码下载
https://github.com/xugaoxiang/learningPyQt5
PyQt5系列教程
更多 PyQt5
教程,请移步