gpt4 book ai didi

qt - 创建多点触控 Qt 5.1 应用程序

转载 作者:行者123 更新时间:2023-12-02 17:28:51 26 4
gpt4 key购买 nike

我正在尝试编写一个多点触控桌面应用程序。我有一个基于 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com