Cla*_*dev 9 qt multi-touch qml qt5
我正在尝试编写一个多点触控桌面应用程序.我有一个基于QML的应用程序,现在我尝试同时拖动多个QML元素.
我尝试使用MultiPointTouchArea,但这不起作用.所以我有2个元素.例如,2张图片,应该由两个不同的人同时拖动.
如果我定义包含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
}
}
Run Code Online (Sandbox Code Playgroud)
这不是我想要的.如果他们同时被触摸和拖动,我希望他们移动,而不会互相干扰,也没有触摸事件的顺序.这可能在qml中吗?或者我必须编写C++函数代码?
我希望你理解我的问题.
我是MultiPointTouchArea的新手 ,正在做一些调查,看来您必须动态地将point (i)分配给第一个触摸的Rectangle(j)。
在您的示例中,您正在进行静态分配:
矩形(绿色)将跟随 point1 因为你正在这样做
x: point1.x
y: point1.y
Run Code Online (Sandbox Code Playgroud)
矩形(黄色)将跟随 point2 因为你正在这样做
x: point2.x
y: point2.y
Run Code Online (Sandbox Code Playgroud)
---> 绿色矩形永远不会跟随点 1,黄色矩形永远不会跟随点 2。
MultiPointTouchArea 具有您定义的触摸点数组,第一个触摸手势由第一个触摸点提供,依此类推。
因此,您必须创建一个函数或一些黑客来检查触摸点状态(按下...)、矩形状态(添加一些布尔属性)并进行分配。
希望这会有所帮助,祝你好运。
| 归档时间: |
|
| 查看次数: |
2204 次 |
| 最近记录: |