QT GUI编程

Qt编写输入法V2018超级终结版

2018-09-22  本文已影响50人  feiyangqingyun

对于qt嵌入式linux开发人员来说,输入法一直是个鸡肋问题,要么不支持实体键盘同步,要么不能汉字输入,要么不支持网页输入等,这几年通过陆续接触大量的各种输入法应用场景客户,得到真实需求,不断改进,最近几天特意完善了数字键盘模式+外部程序输入支持(输入到记事本QQ等程序)+网页输入支持,花了不少的心血,头发都快掉光了!

目前除了还剩T9布局输入+手写输入还没有实现外,基本上算是比较完美了。市面上能做到支持任意操作系统+任意Qt版本+任意编译器的支持的,基本上没有。

功能特点:  

1:未采用Qt系统层输入法框架,独创输入切换机制。

2:纯QWidget编写,支持任何目标平台(亲测windows、linux、嵌入式linux等),支持任意Qt版本(亲测Qt4.6.0到Qt5.11.2),支持任意编译器(亲测mingw、gcc、msvc等),支持任意控件输入包括网页中的输入控件。

3:调用极为方便,pri文件调用形式,只要改成文件包含即可,例如pro文件中写 include($$PWD/inputnew/inputnew.pri)。

4:界面清晰简洁,UI美观友好,非常适合触摸设备。

5:同时支持实体键盘输入+鼠标单击输入+触摸输入。

6:支持Qt程序嵌入的浏览器中的网页中的文本框等控件的输入。

7:支持迷你模式,界面大小随意设置,采用布局自使用任何分辨率。

8:支持纯数字键盘模式,自由控制弹出完整输入法面板和数字键盘面板,只需要对控件设置属性即可。例如ui->txt->setProperty("flag", "number");

9:自由控制需要显示输入法和不需要显示输入法,当某些控件不需要弹出输入法,只需要对应不需要弹出输入法的控件设置属性noinput为真即可。例如ui->txt->setProperty("noinput", true);

10:界面自适应屏幕大小,输入法弹出位置为控件底部时,当超过桌面右边或者底部时,自动调整位置。

11:实现了长按超过500毫秒重复执行按下的键的功能。例如长按退格键,不断删除。

12:shift键切换输入法,esc键隐藏输入法,空格选中第一个汉字,回车选中输入的拼音。和搜狗输入法处理一致。

13:英文、中文、手写、数字字母、大小写、特殊字符自由切换。

14:支持单拼双拼词组输入,网上大部分只支持单个汉字输入。智能分页算法,可任意翻页查看汉字词组。

15:默认自带5种皮肤颜色,可随意切换,用户也可用QSS自定义皮肤。

16:字库文件可大可小,提供迷你版字库大小仅120KB,方便存储空间紧张的硬件,完整版字库25MB。

17:可选谷歌内核的输入法引擎,字库文件1MB,不依赖数据库,资源占用低效率极高。支持模糊拼音,比如nh=你好。

18:可选windows专有版本,支持外部程序输入,比如输入到记事本、QQ聊天窗口等。

19:整个输入法代码行数1000行左右,非常小,不会对程序增加大小造成负担。

20:代码结构极为清晰,注释详细,非常容易阅读和理解,同时也可以自行修改拓展自定义的需求。

上一篇下一篇

猜你喜欢

热点阅读