硬件平台:全志的A40I-H
软件平台:Linux 内核版本3.10.65
QT版本:5.9.0
重新编译dict_pinyin.dat的作用
1.解决输入"nss"导致输入法崩溃的问题
2.解决输入某些嵌入式平台不支持的字体,例如“捃”,导致程序崩溃的问题
源码路径:
~/qt-everywhere-opensource-src-5.9.0/qtvirtualkeyboard/src/virtualkeyboard/3rdparty/pinyin/command
目录里面有一个Makefile和pinyinime_dictbuilder.cpp
1.不能直接make,cpp文件里面有一句提示信息
/**
* Build binary dictionary model. Make sure that ___BUILD_MODEL___ is defined
* in dictdef.h.
*/
需要在dictdef.h里面取消___BUILD_MODEL___ 宏的注释,dictdef.h路径:
~/qt-everywhere-opensource-src-5.9.0/qtvirtualkeyboard/src/virtualkeyboard/3rdparty/pinyin/include
2.修改完成,在当前目录下,打开控制台,直接make即可
3.编译完成,会有一个可执行文件pinyinime_dictbuilder
4.按照自己的喜好或者需求,修改文件rawdict_utf16_65105_freq.txt
路径:~/qt-everywhere-opensource-src-5.9.0/qtvirtualkeyboard/src/virtualkeyboard/3rdparty/pinyin/data
注意:最好在虚拟机或者Linux环境下用vim打开,不要拉出去Windows下编辑,不然txt文件格式会有出入,到时候会build 失败
a.某些生僻字,在当前平台运行会报错,可以直接删除该字体,例如A40i的libQt5Gui.so库, 不支持“捃"字,输入拼音jun会让程序崩溃,所以删掉此行
b.输入nss会报错,删掉ni shi shui 和ni shi shei 这两行联想字体即可
5. 回到pinyinime_dictbuilder的目录,在控制台里面 ./pinyinime_dictbuilder执行编译
编译成功会提示如下信息
6.回到data目录,查看.dat文件是否已经更新
路径:~/qt-everywhere-opensource-src-5.9.0/qtvirtualkeyboard/src/virtualkeyboard/3rdparty/pinyin/data
在控制台输入 ls -la查看.dat文件的生成时间,如果为最新,即可直接放入嵌入式平台中使用。
参考资料:
1.GooglePinyin分析 | AlphaBoom
2.xiangfademao/PinYinImeDicBuilder: 谷歌拼音输入法词库生成工具 (github.com)
3.qt平台集成google拼音中文输入法_qml使用谷歌拼音-CSDN博客
特别鸣谢:小瑜、林工、小小周。