Virtual Keyboard Tools |
Здравствуйте, гость ( Вход | Регистрация )
Virtual Keyboard Tools |
QCasper |
28.12.2009, 13:45
Сообщение
#1
|
Студент Группа: Участник Сообщений: 66 Регистрация: 26.11.2007 Пользователь №: 24 Спасибо сказали: 2 раз(а) Репутация: 1 |
По работе пришлось столкнуться с необходимостью в виртуальной клавиатуре. Ввиду того, что разрабатываемый софт планируется сделать максимально расширяемым на уровне конфигураций, в том числе это касается и дизайна, этот вопрос коснулся и клавиатуры. Поиск по готовым решениям показал, что все предлагаемые варианты, имеют свой собственный, неповторимый дизайн. Даже небольшое его изменение влечёт правки кода. То же самое касается и фукционала - просто так добавить/удалить кнопку не получится.
Универсальное решение возможно и существует, но в интернете оно в глаза не бросается и скорее всего не бесплатное. Вобщем, так или иначе, я его не нашел и посему попытался решить задачу собственными силами. В результате получился небольшой набор классов и вспомогательное приложение. Суть работы сводится к следующему. Для каждой раскладки, которую собирается использовать Ваша клавиатура, необходимо подготовить по два изображения. Первое должно быть обычным изображением клавиатуры, во втором все кнопки должны быть нажаты. После этого нужно подготовить файлы раскладки. Для этого используется вспомогательное приложение. В нём нужно "обвести" все кнопки вашей клавиатуры, используя подходящие для этого инструменты, коих всего два: прямая линия и линия безье. После каждой такой обводки приложение предлагает задать имя, код и печатаемый текст клавиши. Теперь, с помощью класса VkbItem, можно работать с виртуальной клавиатурой, которая имеет Ваш собственный дизайн. Вы можете настраивать переключение между раскладками и задавать альтернативное поведение клавиш, то как их "залипание" или "автоподнятие" по нажатию других клавиш. Я надеюсь этот небольшой инструментарий будет полезен. Ссылка для загрузки. |
|
|
DIMEDROLL |
28.12.2009, 18:55
Сообщение
#2
|
Участник Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: 0 |
а для чего эти виртуальные клавиатуры используются?
я просто никогда не сталкивался... |
|
|
QCasper |
28.12.2009, 19:25
Сообщение
#3
|
Студент Группа: Участник Сообщений: 66 Регистрация: 26.11.2007 Пользователь №: 24 Спасибо сказали: 2 раз(а) Репутация: 1 |
а для чего эти виртуальные клавиатуры используются? я просто никогда не сталкивался... Сейчас с ними по-моему только снежный человек не сталкивался. Например в платёжном терминале, чтобы набрать номер телефона. Или в том же телефоне с сенсорным управлением, чтобы набрать вообще что-либо, от номера до смски. |
|
|
DIMEDROLL |
28.12.2009, 23:44
Сообщение
#4
|
Участник Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: 0 |
а что, прикольно
и дока есть, через доксиджен и структура проекта... только вот пару вопросов: Почему лицензия GPL а не LGPL? Почему не сбилдить семпл что бы упростить людям жизнь? Вот я скачал твой проект, а что бы посмотреть уже надо куда то лезть и компилить Хорошо, таки начал компилить: Сделал так как в README, результат Цитата D:\Programming\3rdParty\Qt\4.5.2\qt\bin\moc.exe -DUNICODE -DWIN32 -DQT_L ARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I "d:\Programming\3rdParty\Qt\4.5.2\qt\include\QtCore" -I"d:\Programming\3rdParty\ Qt\4.5.2\qt\include\QtGui" -I"d:\Programming\3rdParty\Qt\4.5.2\qt\include" -I".. \..\..\include" -I"d:\Programming\3rdParty\Qt\4.5.2\qt\include\ActiveQt" -I"..\. .\..\tmp\vkbtools" -I"d:\Programming\3rdParty\Qt\4.5.2\qt\mkspecs\default" -D_MS C_VER=1400 -DWIN32 graphicsitem.h -o ..\..\..\tmp\vkbtools\moc_graphicsitem.cpp graphicsitem.h(43): Error: Undefined interface NMAKE : fatal error U1077: 'D:\Programming\3rdParty\Qt\4.5.2\qt\bin\moc.exe' : r eturn code '0x1' Stop. NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 8\VC\BIN\n make.exe"' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop. QTDIR у меня == D:\Programming\3rdParty\Qt\4.5.2_shared а судя по ошибкам оно ищет в другой папке, наверное по переменной среды PATH... в общем надо разбирать... минут 30 уже ушло |
|
|
Litkevich Yuriy |
29.12.2009, 0:07
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
QCasper |
29.12.2009, 10:09
Сообщение
#6
|
Студент Группа: Участник Сообщений: 66 Регистрация: 26.11.2007 Пользователь №: 24 Спасибо сказали: 2 раз(а) Репутация: 1 |
Почему лицензия GPL а не LGPL? А можно я не буду отвечать? Почему не сбилдить семпл что бы упростить людям жизнь? Потому что инструмент рассчитан на программистов, которым нужно будет линковаться с библиотекой. Я же не знаю какой компилятор будет в итоге использоваться, собирать подо все известные? Впрочем, так или иначе, сборка для windows, для ознакомления с редактором и примером появится в следующих версиях. Вот я скачал твой проект, а что бы посмотреть уже надо куда то лезть и компилить Хорошо, таки начал компилить: Сделал так как в README, результат Цитата D:\Programming\3rdParty\Qt\4.5.2\qt\bin\moc.exe -DUNICODE -DWIN32 -DQT_L ARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I "d:\Programming\3rdParty\Qt\4.5.2\qt\include\QtCore" -I"d:\Programming\3rdParty\ Qt\4.5.2\qt\include\QtGui" -I"d:\Programming\3rdParty\Qt\4.5.2\qt\include" -I".. \..\..\include" -I"d:\Programming\3rdParty\Qt\4.5.2\qt\include\ActiveQt" -I"..\. .\..\tmp\vkbtools" -I"d:\Programming\3rdParty\Qt\4.5.2\qt\mkspecs\default" -D_MS C_VER=1400 -DWIN32 graphicsitem.h -o ..\..\..\tmp\vkbtools\moc_graphicsitem.cpp graphicsitem.h(43): Error: Undefined interface NMAKE : fatal error U1077: 'D:\Programming\3rdParty\Qt\4.5.2\qt\bin\moc.exe' : r eturn code '0x1' Stop. NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 8\VC\BIN\n make.exe"' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop. QTDIR у меня == D:\Programming\3rdParty\Qt\4.5.2_shared а судя по ошибкам оно ищет в другой папке, наверное по переменной среды PATH... в общем надо разбирать... минут 30 уже ушло Во-первых с 4.5 оно и не соберётся скорее всего. В VKB Editor используется State Machine. Во-вторых разбиретесь сначала в чехарде своих Qt каталогов. Надо думать, я сначала протестировал сборку несколько раз и на Linux и в Windows, а потом уже выложил. |
|
|
DIMEDROLL |
29.12.2009, 11:13
Сообщение
#7
|
Участник Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: 0 |
Цитата А можно я не буду отвечать? низя :-) интересно ведь... Цитата Во-первых с 4.5 оно и не соберётся скорее всего. а это где то написано? в РИДМИ или на сайте? на сайте сказано: Цитата Qt 4.x , я так понимаю что с любой 4-ой версией должно работать...
|
|
|
QCasper |
29.12.2009, 11:26
Сообщение
#8
|
Студент Группа: Участник Сообщений: 66 Регистрация: 26.11.2007 Пользователь №: 24 Спасибо сказали: 2 раз(а) Репутация: 1 |
Цитата Во-первых с 4.5 оно и не соберётся скорее всего. а это где то написано? в РИДМИ или на сайте? на сайте сказано: Цитата Qt 4.x , я так понимаю что с любой 4-ой версией должно работать...Согласен, это моё упущение. Не то чтобы я не заметил, что нужно указать версию. Просто до сих пор не указал. |
|
|
Текстовая версия | Сейчас: 22.12.2024, 11:59 |