Как заставить движущуюся руку и кончики пальцев взаимодействовать с графическим интерфейсом Qt, как мышь?


Я делаю это приложение, управляемое пальцами (OpenCV 2.3.2 + Qt 4.7, разрабатываемое в Visual Studio 2010), в котором я хотел бы использовать графический интерфейс Qt, особенно его диалоги. Положение кончика пальца будет обнаружено и отслежено с помощью видеокамеры. Представьте себе, что краска Microsoft Windows используется одним кончиком пальца. Я размышлял о следующих вариантах:

  • Создание подклассов QEvent и установка фильтра событий в виджет для фильтрации ненужных событий
  • подклассы QCursor, если события мыши зависят от положения курсора
  • делает свой собственный выбор цвета и другие вводные диалоги, которые не подкласс любой из специализированных диалоговых окон в Qt, что я бы, если ни одно из вышеупомянутого не осуществимо. Я заглянул в исходный код QColorDialog и нашел QColorWell и QColorLuminancePicker, и теперь думаю о наименее утомительном способе создания подобных виджетов.

Какой способ может быть наиболее практичным и наименее трудоемким с точки зрения вычислений? сделать это? Извините, если мой английский не был ясным или запутанным. Заранее спасибо.

1 3

1 ответ:

Вы можете моделировать это поведение, реализуя QTouchEvent и вызывая это событие одновременно вашим возможным потоком обработки изображений. Вам просто нужно сгенерировать параметры, необходимые QTouchEvent (точки касания, местоположения и т. д.) По вашему алгоритму обработки изображений.