我有一个鼠标区域,它的行为应该有所不同,这取决于是否按下了修改键。当没有修改键被按下时,也应该有一个默认行为。我对此进行如下测试:
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不应该也被计算为非零的值吗?
发布于 2018-04-06 20:58:33
所以看起来Qt.NoModifer是零,因此mouse.modifiers&Qt.NoModifier也是零。因此,检查
if(!mouse.modifiers)应该是解决方案
https://stackoverflow.com/questions/49693104
复制相似问题