首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QML MouseArea -检查Qt.NoModifier

QML MouseArea -检查Qt.NoModifier
EN

Stack Overflow用户
提问于 2018-04-06 20:43:54
回答 1查看 284关注 0票数 0

我有一个鼠标区域,它的行为应该有所不同,这取决于是否按下了修改键。当没有修改键被按下时,也应该有一个默认行为。我对此进行如下测试:

代码语言:javascript
复制
        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中按下鼠标按钮时,我得到以下输出:

代码语言:javascript
复制
    qml: Entered onPressed:  0

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

代码语言:javascript
复制
                if(mouse.modifiers & Qt.ControlModifier) {
                    console.log("Entered Control if: ",mouse.modifiers&Qt.ControlModifier)
                }

工作和打印qml: Entered Control if: 67108864不应该也被计算为非零的值吗?

EN

回答 1

Stack Overflow用户

发布于 2018-04-06 20:58:33

所以看起来Qt.NoModifer是零,因此mouse.modifiers&Qt.NoModifier也是零。因此,检查

代码语言:javascript
复制
 if(!mouse.modifiers)

应该是解决方案

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49693104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档