Qt C ++ QTouchEvent& TouchPoint混乱

时间:2011-09-29 04:51:05

标签: c++ qt events touch multi-touch

试图绕着QTouchEvent。任何帮助/建议表示赞赏。

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

如果不是,那么Qt是否会将在给定时间分数内发生的几个TouchBegin实例组合在一起并将其作为一个事件传递,并在事件中封装了点列表?同样,QTouchUpdate事件将包含有关当时正在更新的几个触摸点的信息吗?

我也认为;

QTouchEvent::TouchPoint::id

将在TouchBegin,TouchUpdate和TouchEnd中保持一致。这意味着在不同的触摸事件中,如果我看到具有相同id的点,则它们是两个事件所指的相同的触摸点。这个假设是否正确?

仅供参考:我一直在与TUIO合作,所以如果有人熟悉Qt和TUIO,我会更容易理解比较解释。我也读过Qt文档,但无法找到我的问题的答案。

我仍然非常感谢任何帮助。

谢谢。

1 个答案:

答案 0 :(得分:2)

报告事件的确切程度在不同平台上似乎有所不同。如果你用两根手指按它,它可以从一个触摸点(TouchBegin)开始,然后立即使用一个带有两个TouchUpdate点的新QTouchEvent。但它也可以将两个触摸点组合到TouchBegin QTouchEvent中。但是我也见过两个TouchBegin事件,尽管这是一种被禁止的事件(参见QTouchEvent doc中的“Touch Point Grouping”)。

开始之后,TouchUpdates再次出现差异。即使抬起一根手指,有时候你总是得到两分(或者手指向下的数量)。在这种情况下,对于抬起的手指“id”,压力为0。或者,您将获得实际关闭的接触点ID数量。

了解如何生成这些内容的最佳方式是install an eventfilter并在按下时观察事件。