PySide6 QKeyEvent:键盘事件类
QKeyEvent
是PySide6
中用于表示键盘事件的类,用于处理与键盘相关的用户输入事件,如按键、释放等;
示例代码
当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_F1
、Qt.Key_F2
、...、Qt.Key_F24
:F1 到 F24 功能键Qt.Key_Escape
:Esc 键Qt.Key_Return
、Qt.Key_Enter
:回车键Qt.Key_Tab
:Tab 键Qt.Key_Backspace
:退格键Qt.Key_Delete
:删除键Qt.Key_Space
:空格键
字母和数字键:
Qt.Key_A
到Qt.Key_Z
:字母 A 到 ZQt.Key_0
到Qt.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_PageUp
、Qt.Key_PageDown
:页面上、下翻页键Qt.Key_Home
、Qt.Key_End
:Home、End 键Qt.Key_Insert
:插入键Qt.Key_CapsLock
:大写锁定键Qt.Key_NumLock
:数字锁定键Qt.Key_ScrollLock
:滚动锁定键