我发现了很多示例,这些示例如何获取像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位域。

08-06 05:30