我正在尝试编写一个多点触摸桌面应用程序。我有一个基于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++函数?
希望你能理解我的问题。
发布于 2014-02-28 22:51:38
我刚接触过MultiPointTouchArea并做了一些调查,看来您必须动态地将--点(I)--分配给第一个触碰的矩形(J)。
在您的示例中,您正在执行静态分配:
矩形(绿色)将跟随point1,因为您正在这样做
x: point1.x
y: point1.y矩形(黄色)将跟随point2,因为您正在这样做
x: point2.x
y: point2.yMultiPointTouchArea有一个您定义的触点数组,第一个触摸手势随第一个触点一起服务,等等。
因此,您必须创建一个函数或一些黑客来检查触点状态(按下.)、矩形状态(添加一些布尔属性)并进行分配。
希望这能帮上忙祝你好运。
https://stackoverflow.com/questions/20633654
复制相似问题