PyQt里面keyPressEvent的相关问题

在macOS系统里controlModifier对应的是command,MetaModifier对应的是ctrl

class MyLabel(QLabel):
    def keyPressEvent(self, evt):
        print("点击了键盘")  # 用以测试这种方法是否被正常调用
        # 组合键
        if evt.modifiers() == Qt.ControlModifier & evt.key() == Qt.Key_W:
            print("点击了command+W 退出窗口")

在这里插入图片描述

三个组合键,使用或运算

if evt.modifiers() == Qt.MetaModifier | Qt.ShiftModifier and evt.key() == Qt.Key_R : 
            print("ctrl+Shfit+R 运行")
# 两个修饰键
if evt.modifiers() == Qt.MetaModifier | Qt.ShiftModifier:
      print("两个修饰键一起运行")

键的名称

command对应Ctrl

Ctrl对应Meta

设置快捷键的时候有用

btn.setShortcut("Meta+a")

评论