QtEmbedded (для Kindle!): Как плагины устройства должны получать обратную связь от приложения? - PullRequest
3 голосов
/ 30 января 2010

Мне нелегко создать работающий интерфейс указателя мыши на Kindle с Qt (неофициально, конечно).Пятипозиционный джойстик не может отслеживать более одного направления за один раз (без диагональных перемещений), и экран слишком медленный, чтобы обновляться для получения хорошей обратной связи.

У меня ограниченное ускорение, но с задержкой экранаэто очень сложно использовать.Когда вы отпустите пятипозиционный переключатель, мышь будет продолжать двигаться в течение 1-2 секунд ... и это не всегда постоянная задержка.

Учитывая эти ограничения, мне действительно нужна помощь со стороны приложения.Мне нужен метод, который плагин драйвера мыши мог бы использовать, чтобы определить, каким должен быть профиль ускорения ... чтобы он мог сказать замедление при пересечении кнопки.Приложение может помочь определить области, в которых имеет смысл различное ускорение (начните с однопиксельных сдвигов в области рисования, но начните с 10 или около того для мертвой области диалога).Проще говоря, приложение должно иметь возможность указывать указателю мыши на переход из режима курсора в режим клавиатуры и т. Д.

Однако я могу перечислить драйверы мыши, но, похоже, я не получаю названия драйверов.Они не QObjects, поэтому здесь нет qobject_cast.Как я могу идентифицировать их как мои и безопасные для использования?Я могу вызвать приведение, но это выглядит довольно неубедительно.

Могу ли я просто предположить, что плагины мои, и привести их в действие?.

ОБНОВЛЕНИЕ

Возможно, плагины могут как-то уведомить приложение.Может быть, используя QApplication :: topLevelWidgets () , пытаясь qobject_cast в поисках QMainWindow ... затем отправляя ему собственный сигнал с помощью внутреннего класса обработчика сигналов плагина на основе QObject?Затем приложение может развернуться и установить соединения, с которыми оно фактически хочет иметь дело.Я попробую сегодня или завтра.

1 Ответ

0 голосов
/ 01 февраля 2010

Почему бы вам не реализовать правую как "табуляцию", а левую как "Shift + Tab". Таким образом, вы можете переместить фокус вокруг. Теперь просто наведите курсор на активную область виджета с фокусом (подумайте о флажках, им нужен указатель над полем, а не по центру). Я ожидаю, что пользователь будет более заинтересован в этом и на самом деле будет иметь указатель, чтобы перемещаться в среде, где его невозможно использовать.

...