Russian Qt Forum
Сентябрь 30, 2024, 14:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Обработка событий касаний сенсорного экрана в GraphicsView  (Прочитано 5504 раз)
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« : Май 04, 2012, 10:46 »

Кто подскажет, как корректно отлавливать и обрабатывать события касаний сенсорного экрана на сцене GraphicsView?
Есть сцена, на ней куча элементов, (как виджеты-кнопки, так и самописные сложные элементы). Есть 42 дюймовый сенсорный промышленный экран с usb выходом.
Работает как в винде так и линуксе. опознается как устройство ввода, но работает как обычная мышь.
Причем в винде если задержать палец, выскакивает контекстное меню, а в линуксе никакой реакции.
Программа работает с мышью, а теперь заказчик хочет что бы еще поддерживала сенсоры. Почитал про QTouchEvent, но так и не понял как его отловить на сцене.
Записан
V1KT0P
Гость
« Ответ #1 : Май 04, 2012, 13:38 »

Кто подскажет, как корректно отлавливать и обрабатывать события касаний сенсорного экрана на сцене GraphicsView?
Есть сцена, на ней куча элементов, (как виджеты-кнопки, так и самописные сложные элементы). Есть 42 дюймовый сенсорный промышленный экран с usb выходом.
Работает как в винде так и линуксе. опознается как устройство ввода, но работает как обычная мышь.
Причем в винде если задержать палец, выскакивает контекстное меню, а в линуксе никакой реакции.
Программа работает с мышью, а теперь заказчик хочет что бы еще поддерживала сенсоры. Почитал про QTouchEvent, но так и не понял как его отловить на сцене.
Не работал но думаю примерно так:
Наследуйся и переопредели QGraphicsView::event(QEvent *event). Внутри сравнивай QEvent::type() с QEvent::TouchBegin, QEvent::TouchUpdate или QEvent::TouchEnd. Если совпало то статик_кастом приводи event к типу QTouchEvent. И дальше передавай это все в свою функцию.
Записан
Bepec
Гость
« Ответ #2 : Май 04, 2012, 13:49 »

Если у вас панельный компьютер(как правило промышленный), то все тачи обрабатываются как нажатия мышкой... Проблем вроде не вижу, но могу и ошибаться в вашем, конкретном, случае.
Записан
bra1ss
Гость
« Ответ #3 : Май 05, 2012, 08:25 »

а как быть с мультитачем?
Записан
Bepec
Гость
« Ответ #4 : Май 05, 2012, 08:31 »

Промышленные мультитач не поддерживают. Во всяком случае продукция Advantech.
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #5 : Май 10, 2012, 19:36 »

у нас мониторы фирмы Elo touch - действительно они обрабабатываются как мышь. но к сожалению в линуксе в xfce я не знаю как сэмулировать нажатие правой кнопки для вызова контекстного меню. боюсь придётся делать костыли...
Записан
Bepec
Гость
« Ответ #6 : Май 11, 2012, 00:01 »

Ну костыли в любом случае придётся делать. Сам работаю с промышленными панельниками - имитация правой кнопки мышки и только. Как вариант сделай как в тотал коммандере.

Нажатие => таймер => больше скольки-то => вызов контекстного.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.041 секунд. Запросов: 22.