作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个多点触控桌面应用程序。我有一个基于 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
}
}
这不是我要找的。我希望它们在被同时触摸和拖动时移动,而不会互相干扰,也没有触摸事件的顺序。这在 qml 中可能吗?或者我必须编写 C++ 函数吗?
希望您能理解我的问题。
最佳答案
我是MultiPointTouchArea的新手,正在做一些调查,看来您必须动态分配点(i) 到第一个触摸的矩形(j)。
在您的示例中,您正在进行静态分配:
矩形(绿色)将跟随point1,因为你正在这样做
x: point1.x
y: point1.y
矩形(黄色)将跟随point2,因为你正在这样做
x: point2.x
y: point2.y
---> 绿色矩形永远不会跟随点 1,黄色矩形永远不会跟随点 2。
MultiPointTouchArea 具有您定义的触摸点数组,第一个触摸手势将由第一个触摸点提供服务,依此类推。
所以你必须创建一个函数或一些黑客来检查触摸点状态(按下...),矩形状态(添加一些 bool 属性)并进行分配。
希望这会有所帮助,祝你好运。
关于qt - 创建多点触控 Qt 5.1 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20633654/
我是一名优秀的程序员,十分优秀!