PySide6 QKeyEvent:键盘事件类

QKeyEventPySide6中用于表示键盘事件的类,用于处理与键盘相关的用户输入事件,如按键、释放等;

示例代码

当Ctrl、Alt以及普通按键被按下时,这段示例代码将打印出按下的键:

import sys
from PySide6.QtWidgets import QApplication, QWidget, QStyleFactory
from PySide6.QtGui import QKeyEvent, Qt

class MainWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.resize(300, 200)
        self.setWindowTitle("QKeyEvent类")

    def keyPressEvent(self,event:QKeyEvent):
        ctrl_pressed = event.modifiers() & Qt.ControlModifier
        alt_pressed = event.modifiers() & Qt.AltModifier

        if ctrl_pressed:
            print("ctrl ",end='')
        if alt_pressed:
            print("alt ",end='')

        print(event.text())

if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setStyle(QStyleFactory.create("Fusion"))
    window = MainWidget()
    window.show()
    sys.exit(app.exec())

常用属性与方法

  • key():获取键盘事件的键码,返回一个整数,代表按下或释放的键的键码。可以通过将key()的返回值与Qt中的预定义常量对比,来判断按下了哪些键;
    if event.key() == Qt.Key_F1: # F1
        pass
    if event.key() == Qt.Key_Delete: # delete
        pass
  • text():获取键盘事件的键的文本表示,返回一个字符串,表示按下的键的文本。
  • modifiers():获取修饰键(如 Shift、Ctrl、Alt等)的状态,返回一个整数,代表修饰键的状态。

    修饰键的状态通常是通过使用位运算来判断,因为修饰键可能同时被按下,因此我们需要将修饰键的状态表示为一个二进制值,其中每个修饰键都对应一个特定的位;

    判断修饰键是否被按下的方法:

    ctrl_pressed = event.modifiers() & Qt.ControlModifier
    alt_pressed = event.modifiers() & Qt.AltModifier
  • isAutoRepeat():检查事件是否是由键盘的自动重复机制触发的,返回一个布尔值。

    自动重复是指当用户长时间按住一个键不放时,键盘会自动产生重复的按键事件;通过调用isAutoRepeat()方法可以判断事件是否由自动重复触发;

  • count():获取连续按键的数量,返回一个整数,表示连续按键的数量。

预定义常量

Qt中预定了一些常量,表示按键的键码,使用前先导入:

from PySide6.QtGui import Qt

以下是一些常见的键盘按键常量:

功能键:

  • Qt.Key_F1Qt.Key_F2、...、Qt.Key_F24:F1 到 F24 功能键
  • Qt.Key_Escape:Esc 键
  • Qt.Key_ReturnQt.Key_Enter:回车键
  • Qt.Key_Tab:Tab 键
  • Qt.Key_Backspace:退格键
  • Qt.Key_Delete:删除键
  • Qt.Key_Space:空格键

字母和数字键:

  • Qt.Key_AQt.Key_Z:字母 A 到 Z
  • Qt.Key_0Qt.Key_9:数字键 0 到 9

方向键:

  • Qt.Key_Up:上
  • Qt.Key_Down:下
  • Qt.Key_Left:左
  • Qt.Key_Right:右

修饰键:

  • Qt.Key_Shift:Shift 键
  • Qt.Key_Control:Ctrl 键
  • Qt.Key_Alt:Alt 键
  • Qt.Key_Meta:Meta 键(通常是 Windows 或 Command 键)

其它特殊键:

  • Qt.Key_PageUpQt.Key_PageDown:页面上、下翻页键
  • Qt.Key_HomeQt.Key_End:Home、End 键
  • Qt.Key_Insert:插入键
  • Qt.Key_CapsLock:大写锁定键
  • Qt.Key_NumLock:数字锁定键
  • Qt.Key_ScrollLock:滚动锁定键

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/pyside6-events/qkeyevent.html

分类: 计算机技术
推荐阅读:
PyQt:改变PyQt界面主题风格 Qt不仅功能强大、跨平台,还一个重要的因素是它生成的界面非常漂亮,且可以随意切换主题风格;本文将介绍如何使用Python获取当前系统支持的PyQt界面主题风格,以及如何切换使用它们;
如何解压和压缩 .tar.gz 文件 .tar.gz 为后缀的文件是一种在Linux和macOS下常见的压缩文件,可直接使用tar命令进行解压或压缩;
Python实现插入排序(insertion sort) 插入排序(insertion sort)是一种比较简单的排序算法;其原理类似于对一手扑克牌进行排序;
C语言实现斐波那契数列 对于斐波那契数列,其下一个数字是前两个数字的和,例如:0、1、1、2、3、5、8、13、21等等;斐波那契数列的前两个数为0和1;使用C语言实现斐波那契数列的方法有两种,递归和无递归;
使用pyi-bindepend工具查看EXE文件的依赖库 pyi-bindepend.exe工具是PyInstaller的一个附属工具,其功能是获得EXE文件运行时需要的依赖文件,当丢失这些文件时,程序无法运行。
Python abs()函数详细教程 abs()函数返回一个数的绝对值;该函数的参数可以是一个整数、浮点数、复数或定义了__abs__()方法的类;