Qt C++ QTouchEvent & TouchPoint Confusion

Qt C++ QTouchEvent & TouchPoint Confusion

本文关键字:TouchPoint Confusion QTouchEvent C++ Qt      更新时间:2023-10-16

只是想把我的头围绕QTouchEvent。任何帮助/建议都是感激的。

具体来说,当触摸事件被触发时,我有点困惑(例如TouchBegin);这是否只代表一个独特的接触点?如果是这样,为什么在QTouchEvent中有一个触摸点列表?

如果不是,是否Qt将在给定时间内发生的几个TouchBegin实例组合在一起,并将其作为一个事件交付,并将点列表封装在事件中?类似地,QTouchUpdate事件将包含有关当时正在更新的几个触摸点的信息。

我也假设;

QTouchEvent::TouchPoint::id

将在TouchBegin, TouchUpdate和TouchEnd中保持一致。意思是在不同的触摸事件中,如果我看到一个具有相同id的点,这是两个事件都引用的相同的触摸点。这个假设正确吗?

仅供参考:我已经使用TUIO一段时间了,所以如果有人熟悉Qt和TUIO,比较解释对我来说会更容易理解。我也通读了Qt文档,但没能找到我问题的答案。

我还是很感激你的帮助。

谢谢。

在不同的平台上,事件的确切报道方式似乎有所不同。如果你用两个手指按它,它可以从一个触摸点(TouchBegin)开始,然后立即用一个带有两个TouchUpdate点的新QTouchEvent跟随它。但是它也可以将两个触摸点分组到TouchBegin QTouchEvent中。但我也见证了两个TouchBegin事件,尽管这是被禁止的事件(参见QTouchEvent文档中的"触摸点分组")。

开始后,在TouchUpdates中再次出现差异。有时,即使你抬起一根手指,你总是得到两分(或手指向下的数量)。在这种情况下,举起的手指"id"的压力为0。或者,你会得到实际下降的接触点id的数量。

了解这些事件是如何生成的最好方法是安装一个事件过滤器,并在按下它们时观察事件