Qt C ++ QTouchEvent & TouchPoint Confusion - PullRequest
       33

Qt C ++ QTouchEvent & TouchPoint Confusion

3 голосов
/ 29 сентября 2011

Просто пытаюсь обернуть мою голову вокруг QTouchEvent.Приветствуется любая помощь / совет.

В частности, я немного растерялся, когда срабатывает событие касания (например, TouchBegin);это представляет только одну уникальную точку соприкосновения?Если да, то почему в QTouchEvent есть список точек соприкосновения?

Если нет, то это тот случай, когда Qt сгруппирует несколько экземпляров TouchBegin, которые происходят за определенный промежуток времени, и доставит их как одно событие ссписок точек, включенных в событие?Аналогично, событие QTouchUpdate будет содержать информацию о нескольких точках касания, которые обновляются в это время?

Также я предполагаю, что;

QTouchEvent::TouchPoint::id

будет оставаться неизменным на протяжении TouchBegin, TouchUpdate и TouchEnd.Это означает, что в разных событиях касания, если я вижу точку с одинаковым идентификатором, это та же точка касания, на которую ссылаются оба события.Это предположение верно?

К вашему сведению: я некоторое время работал с TUIO, поэтому, если кто-то знаком с Qt и TUIO, мне будет гораздо легче понять сравнительное объяснение.Я также прочитал документацию по Qt, но не смог найти ответ на свой вопрос.

Тем не менее, я бы очень признателен за любую помощь.

Спасибо.

1 Ответ

2 голосов
/ 29 сентября 2011

Как точно сообщается о событиях на разных платформах.Если вы нажмете его двумя пальцами, он может начаться с одной точки касания (TouchBegin) и сразу же следовать за ней с новым QTouchEvent с двумя точками TouchUpdate.Но он также может сгруппировать две точки касания в TouchBegin QTouchEvent.Но я также был свидетелем двух событий TouchBegin, хотя это своего рода запрет (см. «Группировка точек касания» в QTouchEvent документ).

После начала снова возникают различия вTouchUpdates.Иногда вы всегда получаете два очка (или сумму, на которую опускаете пальцы), даже если вы поднимаете один палец.В этом случае давление 0 для поднятого пальца «id».В качестве альтернативы вы получите количество идентификаторов точек касания, которые фактически не работают.

Лучший способ понять, как они генерируются, - установить фильтр событий и наблюдать за событиями, пока вы нажимаете их.

...