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

How to check if CTRL and SHIFT are pressed simultaneously in PyQt?

我找到了很多如何获得像 this one 这样的键修饰符的例子。但是我无法检查它们是否同时按下并按住。

这应该很容易,因为 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')

我们看到测试了 CTRLSHIFT。但是我需要检查一下是否同时按下了这两个按钮。

我测试了很多像这样的变体:

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

我找到了一些用 C 语言编写的东西,但我似乎无法翻译它。

我的 Python 生锈了但是试试 if (modifiers & QtCore.Qt.ControlModifier) and (modifiers & QtCore.Qt.ShiftModifier):

这会检查 modifiers 中是否同时设置了 Control 和 Shift 位域。