Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 如何在QML中使用多点触摸区域跟踪鼠标移动/单点触摸?_Qt_Qml_Mouse_Multi Touch - Fatal编程技术网

Qt 如何在QML中使用多点触摸区域跟踪鼠标移动/单点触摸?

Qt 如何在QML中使用多点触摸区域跟踪鼠标移动/单点触摸?,qt,qml,mouse,multi-touch,Qt,Qml,Mouse,Multi Touch,当未按下鼠标按钮(在MacBook Air上使用鼠标进行测试,在Windows 10上使用鼠标进行测试)或单点触摸事件(在MacBook Air轨迹板上进行测试)时,具有鼠标启用:true和最小触点:1的多点触摸区域似乎不支持鼠标移动 在上面的示例中,控制台输出仅为 2+接触点 按下按钮的鼠标 1个触控点,触控板按下 我尝试过在鼠标区域上分层多点触摸区域,并设置mouseEnabled:false。这允许鼠标单击事件传播,但鼠标earea不会接收到鼠标位置更改的信号。因此,最终结果与上述相同

当未按下鼠标按钮(在MacBook Air上使用鼠标进行测试,在Windows 10上使用鼠标进行测试)或单点触摸事件(在MacBook Air轨迹板上进行测试)时,具有
鼠标启用:true
最小触点:1
的多点触摸区域似乎不支持鼠标移动

在上面的示例中,控制台输出仅为

  • 2+接触点
  • 按下按钮的鼠标
  • 1个触控点,触控板按下
我尝试过在鼠标区域上分层多点触摸区域,并设置
mouseEnabled:false
。这允许鼠标单击事件传播,但鼠标earea不会接收到鼠标位置更改的信号。因此,最终结果与上述相同

有没有办法支持:

  • 1+个触摸点(包括触摸板上的触摸点)
  • 不按按钮的鼠标

没有按下按钮的鼠标不应该生成任何触摸事件-为什么您希望它生成任何触摸事件?这将使大多数应用程序无法使用。对不起,我不同意。与在鼠标earea上设置hoverEnabled并在其中跟踪进入、退出和鼠标移动的方式相同,此功能确实非常有用。对于我正在开发的应用程序来说,屏幕的某些区域以这种方式运行是至关重要的。除了质疑有效性,你能提供一个解决方案吗?鼠标区域用于鼠标跟踪。触摸区用于触摸输入,而不是鼠标跟踪。如果要跟踪鼠标,需要添加鼠标区域。这很简单,对吧?你试图用触摸区做它不该做的事。“医生,我这样做很痛。”“好吧,那就别这么做了。”:)我同意。请参阅我问题的最后一部分:“我已经尝试在鼠标区域上分层多点触摸区域……”。您是否有解决方案,因为鼠标事件正在被吞噬。我看到了这个报告的bug,但它显示为关闭。我错过什么了吗?是否有一种方法可以传播鼠标信号,或者这是Qt中的一个限制。。。在哪种情况下有解决方法?您是否尝试过将鼠标区域放在顶部?
import QtQuick 2.5

Rectangle {
    id: root
    width: 800
    height: 300

    MultiPointTouchArea {
        anchors.fill: parent
        mouseEnabled: true
        minimumTouchPoints: 1
        maximumTouchPoints: 10

        onUpdated: {
            for (var touch in touchPoints)
                console.log("Multitouch updated touch", touchPoints[touch].pointId, "at", touchPoints[touch].x, ",", touchPoints[touch].y)
        }
    }
}