Russian Qt Forum
Ноябрь 23, 2024, 17:06
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Qt Embedded
>
нужен совет по клавиатуре на ARM9 телефоне
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: нужен совет по клавиатуре на ARM9 телефоне (Прочитано 4652 раз)
lisarden
Гость
нужен совет по клавиатуре на ARM9 телефоне
«
:
Март 24, 2011, 10:29 »
Всем привет!
Я разрабатываю GUI для телефона на ARM9. Аппарат имеет кнопки 0-9, * # плюс 4 софт-кнопки и навигатор <^> "OK" и мне нужно каким-то образом перехватывать все нажатия этих кнопок и создавать всю логику работы системы, а именно:
1) управлять окнами, менять их
2) с помощью стрелок перемещаться между активными виджетами
3) нажатия 0-9 транслировать в буквенный ввод, длительное нажатие преобразовать в цифру..
в общем, всё как на обычном кнопочном сотовом телефоне. Использую я qt-embedded-4.7, поэтому всё приходится делать ручками.
По железу: клавиатура видна в линуксе как "/dev/input/event0" и "/dev/input/event1" (часть нажатий с одного ивента, часть с другого). Я могу объединить 2 драйвера в один, чтобы один event был, но это уже не по теме.
Т.е. мне нужно какое-то одно место, где бы все нажатия и отпускания кнопок захватывались, преобразовывались в нужные Key_ и отправлялись на нужные виджеты. Как это сделать?
Записан
gogi
Гость
Re: нужен совет по клавиатуре на ARM9 телефоне
«
Ответ #1 :
Март 24, 2011, 11:04 »
Пиши свой драйвер клавиатуры. Драйвер для Qt в смысле, а не для линукса.
В хелпе читай про QWSKeyboardHandler.
Пример реализации смотри в $QTDIR/src/gui/embedded/qkbdlinuxinput_qws.cpp/.h
И ещё погугли хорошенько. Я помню такая тема была на ЛОРе несколько лет назад и там были примеры кода.
Записан
lisarden
Гость
Re: нужен совет по клавиатуре на ARM9 телефоне
«
Ответ #2 :
Март 24, 2011, 11:53 »
Спасибо за ответ!
а что мне даст драйвер? Он же не будет отслеживать какое окно у меня активное и сейчас надо цифры вводить или буквы (рус, анг, +регистр). Имхо драйвер это что-то Low-level, а не Application-level. Я не прав?
Записан
gogi
Гость
Re: нужен совет по клавиатуре на ARM9 телефоне
«
Ответ #3 :
Март 24, 2011, 12:01 »
>а что мне даст драйвер?
Даст возможность обработать новые данные из /dev/input/event0 и передать их дальше в подсистему Qt.
Возможно перед передачей нужно какие-то нажатия отбросить, подсчитать автоповторы вручную или что-нибудь ещё.
Если ничего этого не надо, то пойдёт и стандартный драйвер.
Записан
lisarden
Гость
Re: нужен совет по клавиатуре на ARM9 телефоне
«
Ответ #4 :
Март 24, 2011, 12:29 »
согласен, такой драйвер пригодится. Только я сейчас на x86 отлаживаюсь и там стандартная клавиатур работает без всяких драйверов.
Теперь следующй вопрос: каким образом мне захватывать события от клавиатуры (абсолютно все, вне зависимости от активности виджета) и посылать на нужный виджет?
Записан
ритт
Гость
Re: нужен совет по клавиатуре на ARM9 телефоне
«
Ответ #5 :
Март 24, 2011, 14:40 »
события клавиатуры с виджетами никак не связаны. обработкой событий, рисованием, синхронизацией и т.д. занимается QWS.
посмотри сорцы любого из драйверов клавиатуры под QWS и сделай подобный для своей железки - всё.
Записан
gogi
Гость
Re: нужен совет по клавиатуре на ARM9 телефоне
«
Ответ #6 :
Март 24, 2011, 21:02 »
Цитата: lisarden от Март 24, 2011, 12:29
Только я сейчас на x86 отлаживаюсь и там стандартная клавиатур работает без всяких драйверов.
Стандартный и работает. Собственно ты можешь слушать /dev/input/event* что на своём телефоне, что на компьютере. И код будет практически совпадать. Правда у такого подхода есть недостаток: запускаешь программу через qvfb, она обрабатывает нажатия с клавиатуры. Переключаешься на редактор кода, а программа продолжает обработку нажатий. Пишешь код, а в программе чёрти что твориться
Тут надо на уровне иксов как-то определять что окно qvfb не активно и всю обработку запрещать.
Записан
lisarden
Гость
Re: нужен совет по клавиатуре на ARM9 телефоне
«
Ответ #7 :
Апрель 02, 2011, 13:39 »
собрал апликуху под ARM с включенным qt-kbd-linuxinput. Запускаю и "о чудо!": кнопки работают, как комповая клавиатура без всяких плагинов и даже явного указания QWS_KEYBOARD. Дравер клавы написан в соответствии с подсистемой Linux Input, потому и заработало всё сразу..
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...