crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> 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, 18:55) *
а для чего эти виртуальные клавиатуры используются?
я просто никогда не сталкивался...


Сейчас с ними по-моему только снежный человек не сталкивался.
Например в платёжном терминале, чтобы набрать номер телефона. Или в том же телефоне с сенсорным управлением, чтобы набрать вообще что-либо, от номера до смски.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 28.12.2009, 23:44
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

Спасибо сказали: 23 раз(а)




Репутация:   0  


а что, прикольно :)
и дока есть, через доксиджен и структура проекта...
только вот пару вопросов:
Почему лицензия GPL а не LGPL?
Почему не сбилдить семпл что бы упростить людям жизнь? :)

Вот я скачал твой проект, а что бы посмотреть уже надо куда то лезть и компилить :huh:
Хорошо, таки начал компилить:
Сделал так как в 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 уже ушло :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
QCasper
  опции профиля:
сообщение 29.12.2009, 10:09
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 66
Регистрация: 26.11.2007
Пользователь №: 24

Спасибо сказали: 2 раз(а)




Репутация:   1  


Цитата(DIMEDROLL @ 28.12.2009, 23:44) *
Почему лицензия GPL а не LGPL?


А можно я не буду отвечать? :)

Цитата(DIMEDROLL @ 28.12.2009, 23:44) *
Почему не сбилдить семпл что бы упростить людям жизнь? :)


Потому что инструмент рассчитан на программистов, которым нужно будет линковаться с библиотекой. Я же не знаю какой компилятор будет в итоге использоваться, собирать подо все известные?
Впрочем, так или иначе, сборка для windows, для ознакомления с редактором и примером появится в следующих версиях.

Цитата(DIMEDROLL @ 28.12.2009, 23:44) *
Вот я скачал твой проект, а что бы посмотреть уже надо куда то лезть и компилить :huh:
Хорошо, таки начал компилить:
Сделал так как в 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, а потом уже выложил.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.12.2024, 22:41