创建一个多点触控Qt 5.1应用程序



我正在尝试编写一个多点触控桌面应用程序。我有一个基于QML的应用程序,现在我尝试同时拖动多个QML元素。

我试着使用MultiPointTouchArea,但这不起作用。所以我得到了两个元素。例如,两张图片,应该由两个不同的人同时拖动。

如果我定义了一个包含MultiPointTouchArea的矩形,并且我将一个touchPoint与每个图片链接,则第一触摸事件移动第一图片,第二触摸事件移动第二图片。

像这个例子中的代码:

Rectangle {
    width: 400; height: 400
    MultiPointTouchArea {
        anchors.fill: parent
        touchPoints: [
            TouchPoint { id: point1 },
            TouchPoint { id: point2 }
        ]
    }
    Rectangle {
        width: 30; height: 30
        color: "green"
        x: point1.x
        y: point1.y
    }
    Rectangle {
        width: 30; height: 30
        color: "yellow"
        x: point2.x
        y: point2.y
    }
}

这不是我想要的。我希望它们在被触摸和拖动的同时移动,而不会干扰彼此,也不会有触摸事件的顺序。这在qml中可能吗?还是我必须编写一个C++函数?

我希望你能理解我的问题。

我是MultiPointTouchArea的新手,经过一些调查,您似乎必须点(I)动态分配给第一个触摸到的矩形(j)

在您的示例中,您正在进行静态分配:

矩形(绿色)将跟随点1,因为您正在这样做

    x: point1.x
    y: point1.y

矩形(黄色)将跟随点2,因为您正在这样做

    x: point2.x
    y: point2.y

--->绿色矩形永远不会跟随点1,黄色矩形永远不会追随点2。

MultiPointTouchArea有一个你定义的触摸点阵列,第一个触摸手势与第一个触摸点一起出现,等等

所以你必须制作一个函数或一些黑客来检查触摸点状态(按下…)、矩形状态(添加一些布尔属性)并进行分配。

希望这会有所帮助,祝你好运。

相关内容

  • 没有找到相关文章

最新更新