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")