qt项目集成谷歌输入法中文库
在做项目的过程中需要实现中英文输入一开始用的是qt的虚拟键盘模块但是我的屏幕很小还是竖屏的qt的软键盘就不好点击最大的问题是语言配置不能修改我只想要中英文qt有40多种我无法调用接口去实现支持两种每次更换语言都在列表中去找很麻烦。一开始想着重新编译源码但是技术不行代码没怎么看懂源码还不会编译就在网上找其他方案。花了好几天才把谷歌的加进去还是菜了点。正文开始先放库文件链接https://gitee.com/tgtsml/QtInputMethod_GooglePinyin/tree/master/googlepinyin/dict将代码下载下来之后用qt creator打开项目我直接右键编译googlepinyin项目然后在build\lib\googlepinyin目录下把lib复制出来注意一下debug版本名称是googlepinyind.librelease是googlepinyin.lib。在新的项目里放对应目录下googlepinyin/googlepinyin.lib记得有一层googlepinyin文件夹接下来是中文对应的词库把谷歌项目的googlepinyin/dict/dict_pinyin.dat和dict_pinyin_user.dat(整个dict文件夹)放到exe目录下刚才的lib也是这里。代码开始了//需要复制进项目的头文件dictdef.h pinyinime.h utf16char.h//初始化输入法引擎boolm_pinyinInitedim_open_decoder(dict/dict_pinyin.dat,dict_pinyin_user.dat);qDebug()拼音引擎初始化结果m_pinyinInited;//接下来是调用{if(!m_pinyinInited){return;}// 1. 输入拼音QString pinyinnihao;QByteArray bapinyin.toUtf8();im_reset_search();im_search(ba.constData(),ba.size());// 2. 获取候选词只获取 1 次不嵌套循环QStringList list;constintMAX_CAND10;for(inti0;iMAX_CAND;i){char16 buf[64]{0};im_get_candidate(i,buf,64);QString wordQString::fromUtf16(buf);if(word.isEmpty())break;listword;// 只在这里添加}// 3. 【只打印一次】最终结果qDebug() 正确候选词 ;for(QString w:list){qDebug()w;}}//我这边的输出结果// 正确候选词 你好你拟尼呢泥妳妮腻逆我这边验证出编译两个版本(debug,release)的lib的时候要清掉就是编好一个就复制出去然后编下一个不知道为啥两个都有的时候就会覆盖掉。