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

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

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

软硬件环境

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

前言

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

键盘按下弹起

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

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 教程,请移步

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

喜欢 (0)

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