Название: Экранная клавиатура Отправлено: zoro86 от Января 25, 2010, 10:23 Делаю прогу где будет использован Touch Screen для ввода данных...
Необходимо сделать экранную клавиатуру, дизайн уже есть накидал с помощью Qt Designer-a.. ввод только латинских букв в уменьшенном и увеличенном регистре, а также цифр с их знаками, клавиатура будет идти как отдельный виджет. У кого есть какие идеи как это можно реализовать? Название: Re: Экранная клавиатура Отправлено: alex12 от Января 25, 2010, 11:00 А в чем, собственно, проблема: написать виджет или эмулировать нажатия клавиш?
Сам виджет - просто кнопочки. От них надо обработать сигналы pressed и released. Еще на эти кнопочки, наверное, надо поставить политику фокуса Qt::NoFocus. Эмуляция событий клавиатуры много раз обсуждалась на форуме. QKeyEvent и QCoreApplication::sendEvent(). Название: Re: Экранная клавиатура Отправлено: QCasper от Января 25, 2010, 11:11 Virtual Keyboard Tools (http://www.qt-apps.org/content/show.php/Virtual+Keyboard+Tools?content=117703) - этот вариант не пробовали рассматривать?
Название: Re: Экранная клавиатура Отправлено: Aleksey_Zh от Января 25, 2010, 11:55 http://www.prog.org.ru/index.php?topic=10815.msg65254#msg65254
Название: Re: Экранная клавиатура Отправлено: zoro86 от Января 25, 2010, 12:18 Aleksey_Zh
Прошелся по ссылке у меня вопрос... то есть платформа независимый виджет клавы накатать не получится? или приведите фрагмент кода для примера, проста я начал писать на линухе а пользоваться этим будут в винде.. Название: Re: Экранная клавиатура Отправлено: cjava от Января 25, 2010, 13:52 Посмотрите в сторону "Input Panel Example" в доках qt 4.6
Название: Re: Экранная клавиатура Отправлено: zoro86 от Января 25, 2010, 14:15 спасибо ::)
Название: Re: Экранная клавиатура Отправлено: Poleno от Июня 22, 2012, 13:05 отличо, я уже поняла это)
но вот самого файла запуска не могу найти Название: Re: Экранная клавиатура Отправлено: Poleno от Июня 22, 2012, 13:07 черт, я идиот
все нашла спасибо ;D Название: Re: Экранная клавиатура Отправлено: mutineer от Июня 22, 2012, 13:08 черт, я идиот все нашла спасибо ;D Ну и зачем было удалять? теперь мой ответ смотрится тупо и его тоже придется удалить. А после этого тупо будет смотреть уже твой ответ и так далее Название: Re: Экранная клавиатура Отправлено: Poleno от Июня 22, 2012, 13:11 черт, я идиот все нашла спасибо ;D Ну и зачем было удалять? теперь мой ответ смотрится тупо и его тоже придется удалить. А после этого тупо будет смотреть уже твой ответ и так далее я на самом деле случааайно ) Название: Re: Экранная клавиатура Отправлено: OKTA от Июня 22, 2012, 16:24 а чего не QtQuick?
Название: Re: Экранная клавиатура Отправлено: mutineer от Июня 22, 2012, 16:26 а чего не QtQuick? Видать два с половиной года назад он был хуже, чем сейчас Название: Re: Экранная клавиатура Отправлено: Poleno от Июня 26, 2012, 16:54 а у меня еще такой вопрос)
я клаву пишу для сенсорного экрана как мне сделать так, чтобы при нажатии на любое место, где можно печатать(будь то строка браузера или блокнот) вылетала клава и печатала там(!) ? я понимаю надо ловить фокусы но не совсем понимаю как это делается) прочитала документацию, к сожалению она без конкретных примеров и беда( Название: Re: Экранная клавиатура Отправлено: Alex Custov от Июня 26, 2012, 17:14 я клаву пишу для сенсорного экрана как мне сделать так, чтобы при нажатии на любое место, где можно печатать(будь то строка браузера или блокнот) вылетала клава и печатала там(!) ? в общем случае никак. Кроссплатформенно - проблем ещё больше. Самый простой вопрос - как ты узнаешь, можно в этом окне печатать или нет? Если делать не универсально, то через глобальные хуки (см. MSDN) отловить нажатие, найти окно под координатами нажатия через кажется ChildWindowFromPoint(), сравнить его classname с "Edit" или аналогичными компонентами, в которых можно печатать текст, и в этих координатах показать виртуальную клавиатуру, которая не крадёт фокус с поля ввода. Программа, использующая хуки, может определяться антивирусом как троян. Название: Re: Экранная клавиатура Отправлено: Poleno от Июня 27, 2012, 10:03 я клаву пишу для сенсорного экрана как мне сделать так, чтобы при нажатии на любое место, где можно печатать(будь то строка браузера или блокнот) вылетала клава и печатала там(!) ? в общем случае никак. Кроссплатформенно - проблем ещё больше. Самый простой вопрос - как ты узнаешь, можно в этом окне печатать или нет? Если делать не универсально, то через глобальные хуки (см. MSDN) отловить нажатие, найти окно под координатами нажатия через кажется ChildWindowFromPoint(), сравнить его classname с "Edit" или аналогичными компонентами, в которых можно печатать текст, и в этих координатах показать виртуальную клавиатуру, которая не крадёт фокус с поля ввода. Программа, использующая хуки, может определяться антивирусом как троян. спасибо за инфу, только я под Linux`ом :) Название: Re: Экранная клавиатура Отправлено: Alex Custov от Июня 27, 2012, 11:08 спасибо за инфу, только я под Linux`ом :) Никак (во всяком случае я не знаю решения). На уровне X11 нет виджетов. Название: Re: Экранная клавиатура Отправлено: Kurles от Июня 27, 2012, 12:18 Самый простой вопрос - как ты узнаешь, можно в этом окне печатать или нет? Если полностью своя программа - разработчик ведь знает, в каком окне печатать можно, а в каком нет. QEvent::FocusIn и QEvent::FocusOut отлавливать на виджетах, которые подразумевают ввод каких либо значений и сигнал емитить, по которому клава будет появляться или исчезать.Название: Re: Экранная клавиатура Отправлено: mutineer от Июня 27, 2012, 12:21 Самый простой вопрос - как ты узнаешь, можно в этом окне печатать или нет? Если полностью своя программа - разработчик ведь знает, в каком окне печатать можно, а в каком нет. QEvent::FocusIn и QEvent::FocusOut отлавливать на виджетах, которые подразумевают ввод каких либо значений и сигнал емитить, по которому клава будет появляться или исчезать.Если полностью своя программа, то QInputContext Название: Re: Экранная клавиатура Отправлено: Alex Custov от Июня 27, 2012, 13:15 Если полностью своя программа - разработчик ведь знает, в каком окне печатать можно, а в каком нет. QEvent::FocusIn и QEvent::FocusOut отлавливать на виджетах, которые подразумевают ввод каких либо значений и сигнал емитить, по которому клава будет появляться или исчезать. Так со своей-то программой как раз проблем нет, но изначально-то нужно поддерживать любые программы: Цитировать будь то строка браузера или блокнот .Название: Re: Экранная клавиатура Отправлено: Poleno от Июня 27, 2012, 13:20 в смысле "полностью своя программа"?
клавиатура - моя а вот браузер, например, нет Название: Re: Экранная клавиатура Отправлено: Kurles от Июня 27, 2012, 13:50 в смысле "полностью своя программа"? Тогда фиг :(клавиатура - моя а вот браузер, например, нет |