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 oct()函数 oct() 是 Python 的内置函数之一,用于将整数转换为八进制字符串。
从PyInstaller打包生成的EXE文件中提取Python源码 本文将详细讲解怎么使用 pyi-archive_viewer 和 uncompyle6 工具提取pyinstaller打包生成的EXE中的pyc文件,并将其正确的解码成py源码。
Python any()函数详细教程 any()函数只接受一个可迭代的类型参数;如果该迭代器的任意一个元素为True,则返回True,否则返回False;如果迭代器为空返回False;
为pm.max_children设置一个合理的值 pm.max_children这个值在php-fpm中至关重要;其意义为:表示php-fpm 能启动的子进程的最大数量;它能影响你网站的打开速度以及服务器的开销。
C语言计算卡特兰数(catanlan number) 卡特兰数(Catalan number),是组合数学中一种常出现于各种计数问题中的数列;本文使用C语言来计算卡特兰数;
Python字符串替换函数replace() replace()是Python中的一个内置函数;可通过replace()函数将字符串中的一部分替换成另一部分,并返回一个新的副本;