【AWTK使用经验】如何添加中文输入法

描述

 

AWTK是基于C语言开发的跨平台GUI框架。《AWTK使用经验》系列文章将介绍开发AWTK过程中一些常见问题与解决方案,例如:如何加载外部资源?如何设计自定义进度条?这些都会在系列文章进行解答。

假设目前需要在AWTK程序中用到中文输入法,并且要自定义输入法的联想词,此时需要用到AWStudio添加软键盘和输入法。下面将介绍如何使用AWStudio在项目中添加中文输入法以及如何修改联想词,并且如何移植到嵌入式设备中。下图是实现中文输入法并移植到 ZTP800示教器 的效果图:
awtk图 1 ZTP800中文输入法效果图 

使用AWStudio添加软键盘

在AWStudio中带有软键盘的默认样式,用户可以直接使用该软键盘样式。创建该默认软键盘也比较简单,只需点击AWStudio的“新建窗体”按钮,接着选择“Keyboard”,确定后即可看到软键盘的UI文件生成。awtk图 2 AWStudio添加默认软键盘接着还需要从awtk/3rd/gpinyin/data目录将gpinyin.dat文件添加到项目资源目录的data目录下,例如:res/assets/default/raw/data,这里可以在AWStudio的资源管理器中点击“导入”按钮添加到“其他数据”分类中。最后将软键盘与控件关联,修改edit控件的“keyboard”属性指定刚刚创建的软键盘窗体。

 

awtk图 3 使用AWStudio导入gpinyin.dat 

修改中文输入法联想词

联想词是指在输入了某个汉字或词组后,输入法根据该汉字或词组提供其常用的组词。如果想要修改联想词的顺序或是增加新的词语等,需要修改awtk/3rd/gpinyin/data目录下的配置文件rawdict_utf16_65105_freq.txt。配置文件中包含了各个词语的汉字、使用频率和对应的拼音,使用频率数值越大,对应的联想词越靠前。例如:下图的“爸爸”使用频率数值大于“巴巴”,那么当输入“baba”拼音时,“爸爸”的显示顺序会比“巴巴”靠前。

awtk图 4 联想字库配置文件

 

修改完配置文件后,在awtk目录下打开终端,执行以下命令,该程序会生成一个新的gpinyin.dat,按照前面步骤拷贝到项目资源目录,如:assets/default/raw/data/。

  •  

./bin/gpinyingen

将中文输入法移植到嵌入式Linux平台

嵌入式Linux的官方移植层awtk-linux-fb默认加入了中文输入法,用户在PC上根据文章前面步骤添加好中文输入法,使用AWStudio打包资源,将项目拷贝到交叉编译环境下使用awtk-linux-fb交叉编译应用即可。 

将中文输入法移植到RTOS平台

将中文输入法代码文件加入编译

对于其它平台如RTOS平台添加中文输入法的步骤会复杂一些,需要将中文输入法相关的代码文件加入编译(比如将这些代码文件添加到keil编译),详细步骤如下:

  1. 加入以下目录的代码文件:awtk/3rd/gpinyin/src;
  2. 加入代码文件:awtk/src/input_engines/input_engine_pinyin.cpp;
  3. 去掉下面的代码文件,不加入编译:awtk/src/input_engines/input_engine_null.cpp;
  4. 加入下面的include路径:awtk/3rd/gpinyin/include;
  5. 加入gpinyin.dat到应用资源目录data文件夹内。

添加输入法宏

  • 在平台对应移植层的awtk_config.h文件内定义宏 :

WITH_IME_PINYIN

另外还需要取消以下两个宏的定义:

  • WITH_NULL_IMWITHOUT_INPUT_METHOD

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分