2
PyQt5系列教程(二十九)键盘事件
source link: https://xugaoxiang.com/2022/05/31/pyqt5-29-keyboard-event/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
软硬件环境
- 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
教程,请移步
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK