pyQt6键盘事件枚举方法

修饰键

Qt.KeyboardModifier.ControlModifier

普通健:

Qt.Key.Key_A

例子:

import sys
from PyQt6.QtWidgets import *
from PyQt6.QtCore import QEvent,Qt
# from PyQt6.QtGui import *

# print(dir(QEvent))

class App(QApplication):
    def notify(self, recevier, evt):
        if (recevier.inherits("QPushButton") and evt.type() == QEvent.Type.MouseButtonPress):
            print(recevier,evt)

        return super().notify(recevier, evt)

class Btn(QPushButton):
    def event(self, evt):
        if evt.type() == QEvent.Type.MouseButtonPress:
            print(evt)
        return super().event(evt)

    def mousePressEvent(self, *args, **kwargs):
        print("鼠标被按下了......")
        return super().mousePressEvent(*args, **kwargs)

class My_widget(QWidget):
    def showEvent(self, a0):
        print("窗口打开了")

    def closeEvent(self, a0):
        print("窗口关闭了")

    def moveEvent(self, a0):
        print("窗口移动了")

    def resizeEvent(self, a0):
        print("窗口尺寸变了")

    def enterEvent(self, event):
        print("鼠标进来了")

    def leaveEvent(self, a0):
        print("鼠标离开了")
    def mouseDoubleClickEvent(self, a0):
        print("鼠标双击了")

    def keyPressEvent(self, a0):
        if a0.modifiers() == Qt.KeyboardModifier.ControlModifier | Qt.KeyboardModifier.AltModifier and a0.key() == Qt.Key.Key_A:
            print("按了ctrl+alt+a")
        #     print(a0.modifiers())


app = App(sys.argv)

window = My_widget()

btn = Btn(window)
btn.setText("按钮")
btn.move(100, 100)

def cao():
    print("按钮被点击了")

btn.pressed.connect(cao)

window.show()

sys.exit(app.exec())