首页 文章

QML MouseArea - 检查Qt.NoModifier

提问于
浏览
0

我有一个鼠标区域,根据是否按下修改键,其行为应该不同 . 当没有按下修改键时,也应该有默认行为 . 我这样测试:

MouseArea {
            anchors.fill: parent
            acceptedButtons: Qt.LeftButton
            onPressed: {
                console.log('Entered onPressed: ', mouse.modifiers&Qt.NoModifier)
                if(mouse.modifiers & Qt.NoModifier) {
                    console.log('Entered If: ', mouse.modifiers&Qt.NoModifier)
                }
         }

当我在 MouseArea 中按下鼠标按钮时,我得到以下输出:

qml: Entered onPressed:  0

但第二行没有打印出来 . 问题似乎是 mouse.modifiers&Qt.NoModifier 被评估为零 . 相反,

if(mouse.modifiers & Qt.ControlModifier) {
                    console.log("Entered Control if: ",mouse.modifiers&Qt.ControlModifier)
                }

正在工作并打印 qml: Entered Control if: 67108864 不应该将mouse.modifiers和Qt.NoModifier评估为非零值?

1 回答

  • 0

    因此,似乎Qt.NoModifer为零,因此mouse.modifiers和Qt.NoModifier为零 . 因此检查

    if(!mouse.modifiers)
    

    应该是解决方案

相关问题