我发现了很多示例,这些示例如何获取像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')
我们看到CTRL或SHIFT都经过测试。但是我需要检查一下是否同时按下两个按钮。
我测试了很多这样的变体:
if modifiers == (QtCore.Qt.ControlModifier and QtCore.Qt.ShiftModifier):
我找到了一些用C语言编写的内容,但似乎无法翻译。
最佳答案
我的Python生锈了,但是尝试if (modifiers & QtCore.Qt.ControlModifier) and (modifiers & QtCore.Qt.ShiftModifier):
这将检查在modifiers
中是否同时设置了Control和Shift位域。