How to check if a keyboard modifier is pressed (shift, ctrl, alt)?

前端 未结 3 635
无人共我
无人共我 2020-12-03 01:35

I am building a UI with Qt Designer and I want buttons to perform different actions with different modifiers. So I thought I could call functions with dynamic string propert

3条回答
  •  旧巷少年郎
    2020-12-03 01:53

    here's another approach using bit operators, that avoids getting into many combos.

    @classmethod
    def get_key_modifiers(cls):
        QModifiers = Qt.QtWidgets.QApplication.keyboardModifiers()
        modifiers = []
        if (QModifiers & Qt.QtCore.Qt.ShiftModifier) == Qt.QtCore.Qt.ShiftModifier:
            modifiers.append('shift')
        if (QModifiers & Qt.QtCore.Qt.ControlModifier) == Qt.QtCore.Qt.ControlModifier:
            modifiers.append('control')
        if (QModifiers & Qt.QtCore.Qt.AltModifier) == Qt.QtCore.Qt.AltModifier:
            modifiers.append('alt')
        return modifiers
    

提交回复
热议问题