在嵌入式开发时,不能通过鼠标键盘输入是很常见的。这时候就需要通过软件层,实现软键盘和输入法来满足用户需求。不过不需要自己造轮子,网上有很多可以参考的开源虚拟键盘,即使不完全符合自己要求,也可以参考着修改下。
下面介绍本人推荐的几个虚拟键盘,如果有侵权,可以联系删除或整改。
开源虚拟键盘推荐
推荐1
Qt 官方开源了一个虚拟键盘的示例,该示例提供两种使用方式:一种用于桌面平台,另一种用于嵌入式平台,示例采用嵌入式平台方式显示。它们区别是前者脱离窗口应用于全局,后者依附于窗口。介绍博客:QML 虚拟键盘(VirtualKeyboard )
-
优点:官方开源的虚拟键盘,支持英文、日语、法语、意大利语等多种语言,底层使用谷歌输入法,支持模糊拼音,拼写很智能。
-
缺点:QML 实现,如果项目 UI 是用 QWidget 实现的话,不好嵌入;支持太多语言是把双刃剑,有时候只需要支持中英文,还要额外修改编译为只支持中英文;通过插件的形式嵌入,修改起来较为麻烦;开源版本与商业版本有差距,例如支持手写方面。
推荐2
Qt君 开源的轻量级 Qt 键盘,介绍博客:轻量级Qt键盘-介绍篇 (qq.com)
-
优点:纯 QWidget 实现,界面美观简洁,嵌入方便无需额外编译,博客介绍详细方便二次修改。
-
缺点:中文拼音输入法基于 pinyin.txt 和 pinyin_phrase.txt 字库文本实现,所以未能实现模糊算法,没有其它使用谷歌拼音输入法的虚拟键盘那么智能。
推荐3
风刮过冷大神提供的虚拟键盘,仿 Qt 官方的 virtualkeyboard 模块,但使用 QWidget 实现。
-
优点:仿 qt 官方的 virtualkeyboard模块,但使用 QWidget 实现,与 Qt 官方开源虚拟键盘功能一样齐全。
-
缺点:需要额外编译成插件动态库,放到 Qt 插件目录下,才能使用,比较麻烦。
-
下载地址:https://gitee.com/third_party_project_code/QVirtualKeyboard/tree/master/
推荐4
onlyshi 大神提供的开源虚拟键盘,重点在于支持了安卓底层的谷歌拼音输入法,介绍博客为:Qt5软键盘实现中文拼音输入法
-
优点:支持了安卓底层的谷歌拼音输入法,拼写很智能。
-
缺点:直接嵌入到项目中的话,源码文件太多,除非单独把谷歌拼音输入法编译成静态库。
-
下载地址:基于Qt5的虚拟键盘_KeyboardForm资源-CSDN文库 (本人已下载好,若有需要可以联系我)
不开源的虚拟键盘推荐
下面还介绍一个不开源的虚拟键盘,具体介绍博客为:Qt编写输入法V2018超级终结版
如果需要源码可自行联系其作者,或寻找其它途径。
- 优点:纯 QWidget 编写(用到了 ui 编辑器),界面清晰简洁,UI 美观友好。
- 缺点:不开源,字库文件庞大,高达 25MB,虽然支持的词组够多,但不支持智能模糊拼音,与使用谷歌拼音的 Qt 官方虚拟键盘还有差距。
其它虚拟键盘
Qt 虚拟键盘 QtVirtualKeyBoard - 知乎 (zhihu.com)
QT4、QT5下的 中文联想虚拟键盘(软键盘virtual keyboard) - 简书 (jianshu.com)
(19条消息) QT5自定义中英文虚拟键盘_飛越無限的博客-CSDN博客
总结
-
在有轮子的情况下,我们千万不要自己造轮子,除非迫不得已。所以一般情况下,不要自己去实现虚拟键盘,费力不讨好;
-
上面推荐的虚拟键盘都各有优缺点,需要你根据自己项目实际情况选择使用或者修改;
-
比较推荐将 "推荐1" 和 "推荐4" 结合起来,使用 "推荐1" 的 UI 界面,添加 "推荐4" 的谷歌输入法,这样既美观简洁,又完美支持模糊拼音输入法。
参考:
(19条消息) Qt实现屏幕虚拟软键盘_qt屏幕键盘_三遍猪的博客-CSDN博客
inputmethod: 基于Qt5,支持中文拼音输入、英文输入、数字输入、常用符号输入、手写输入、实体键盘同步 (gitee.com)
标签:虚拟,Qt,键盘,开源,拼音输入,com From: https://www.cnblogs.com/linuxAndMcu/p/17545151.html