QtEmbedded (для Kindle!): Как подключаемые модули устройства должны получать обратную связь от приложения?

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

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

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

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

Должен ли я просто предположить, что плагины мои, и использовать их?

Я бы хотел, чтобы какой-нибудь простой сигнал/слот подключил это.

ОБНОВЛЕНИЕ

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


person darron    schedule 30.01.2010    source источник


Ответы (1)


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

person e8johan    schedule 01.02.2010
comment
На Kindle нет вкладки. Хотя я понимаю. Вот для чего предназначен режим клавиатуры, о котором я упоминаю в вопросе. - person darron; 08.02.2010
comment
У Kindle нет табуляции, это правильно, но Qt по-прежнему реагирует на нажатия клавиш табуляции. Эмулируя такое нажатие, когда пользователь нажимает вправо или влево, вы можете добиться более быстрого пользовательского интерфейса, чем перемещение указателя мыши с помощью клавиш со стрелками... - person e8johan; 09.02.2010