如何在PyQt中检查CTRL和SHIFT是否同时按下?

4
我发现很多关于获取键盘修饰符的例子,比如这个。但是我不知道如何检查它们是否同时按下并保持。

这应该很容易,因为CTRL+SHIFT是标准的组合键。

从上面链接的例子中:

modifiers = QtGui.QApplication.keyboardModifiers()
if modifiers == QtCore.Qt.ShiftModifier:
    print('Shift+Click')
elif modifiers == QtCore.Qt.ControlModifier:
    print('Control+Click')
else:
    print('Click')

我们可以看到这里测试了 CTRL 或者 SHIFT,但我需要一个检查,能够找出是否同时按下了两个键。
我尝试了很多类似于这样的方法:
if modifiers == (QtCore.Qt.ControlModifier and QtCore.Qt.ShiftModifier):

我发现一些用C语言写的代码,但是似乎无法翻译。


修饰符可以进行按位或(我已更新您链接的答案)。 - ekhumoro
1个回答

5

我的Python已经生疏了,但是试试这个:

if (modifiers & QtCore.Qt.ControlModifier) and (modifiers & QtCore.Qt.ShiftModifier):

这段代码检查modifiers中是否设置了Control和Shift位。


非常感谢,这样就可以了。 - chiefenne

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接