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

分类: 计算机技术
推荐阅读:
Python使用蒙特卡洛法计算圆周率 蒙特卡洛方法通过在单位正方形内随机生成点,并判断这些点是否在单位圆内的比例来估算圆周率。当随机点数量越多时,估算值越趋近于真实值。
Golang获取CPU物理核心数 在Go语言中,可使用runtime包中的NumCPU()函数获取CPU的物理核心数;
什么是函数原型? 函数原型包括函数的名称、参数列表以及返回类型,但不包含函数体内的具体实现代码。函数原型的作用是为编译器提供关于函数的基本信息,以便在程序中正确地调用和使用该函数。
Python使用webbrowser模块来实现弹出一个网页 如果你希望在别人运行你的程序时弹出一个指向自己网站的页面,你可以通过以下代码来实现:
查询SSL证书的有效期 在本文中,你将了解如何查询网站SSL证书的有效期;首先,通过浏览器打开要查询的网站,以查询本站SSL证书是否过期为例...
如何查询电脑电池型号 要查询笔记本电脑的电池型号,可通过以下步骤进行:为方便查看结果,在桌面空白处右键单击,开打终端;也可使用命令提示符;