欢迎访问我的网站,希望内容对您有用,感兴趣的可以加入我们的社群。

PyQt5系列教程(二十九)键盘事件

PyQt5开发 迷途小书童 3年前 (2022-05-31) 8482次浏览 0个评论

软硬件环境

  • Windows 10 64bit
  • Anaconda3 with python 3.8
  • PyQt5 5.15

前言

前一节,我们介绍了鼠标事件,本节,介绍键盘事件,它也是 GUI 操作的重要手段,如常见的 F1 键显示帮助、ctrl+c 复制、ctrl+v 粘贴等。

键盘按下弹起

键盘按键的按下和弹起对应的事件是 keyPressEventkeyReleaseEvent,如果需要在事件发生后进行相应的逻辑处理,在窗口中只需要重写这两个方法即可。

  1. def keyPressEvent(self, event):
  2. # 判断按下的是什么键
  3. if event.key() == Qt.Key_D:
  4. print('keyPressEvent, Key_D')
  5. # ctrl 修饰键
  6. if event.modifiers() & Qt.ControlModifier:
  7. print('Ctrl+D')
  8. # alt 修饰键
  9. elif event.modifiers() & Qt.AltModifier:
  10. print('Alt+D')
  11. # shift 修饰键
  12. elif event.modifiers() & Qt.ShiftModifier:
  13. print('Shift+D')
  14. def keyReleaseEvent(self, event):
  15. print('keyReleaseEvent')

快捷键设置

这里,我们给界面中的按钮设置一个快捷键,对应的操作是点击

  1. self.pushButton.clicked.connect(self.onClick)
  2. # 给按钮操作设置一个快捷键A
  3. self.pushButton.setShortcut(QKeySequence(Qt.Key_A))
  4. # 或者这样
  5. # self.shortcut_button = QShortcut(QKeySequence('Ctrl+S'), self)
  6. # self.shortcut_button.activated.connect(self.onClick)

这样,当焦点在界面范围内,按下字母 A 键,就相当于点击了界面上的按钮

源码下载

https://github.com/xugaoxiang/learningPyQt5

PyQt5系列教程

更多 PyQt5 教程,请移步

https://xugaoxiang.com/category/python/pyqt5/

喜欢 (0)

您必须 登录 才能发表评论!