转载:http://hi.baidu.com/428501/blog/item/73dbf9734253f1158701b0ac.html
===========================================================================================
11. 实现GUI界面的中文化,
===========================================================================================
----------------------------------------------------------
(1)实现GUI界面的中文化,
----------------------------------------------------------
进入/data/qt_x86
(i)设置环境变量
#. setenv_PC_ZC.sh
#export QTDIR=$QTEDIR
================================================================================
(ii)进入qtopia-2.1.1-target;开始配置
================================================================================
#./configure -displaysize 320x240 -languages "zh_CN"
----------------------------------------------------------
(2)移植相应的拼音输入法,使得系统可以输入汉字
----------------------------------------------------------
///////////////////////////////////////////
//
// 移植Qtopia中文输入法_PC机版
//////////////////////////////////////////
从 下载MurphyPinyin-0.03-src.tgz
1. #tar zxvf MurphyPinYin-0.03-src.tgz
2. #cd MurphyPinYin
3. mv Makefile.x86 Makefile
4. #export QTDIR=/data/qt_x86/qt-2.3.10-target
#export QPEDIR=/data/qt_x86/qtopia-2.1.1-target
5. 修改Makefile文件的以下内容:
LIBS= $(LIBS) –L$(QPEDIR)/lib –L$(QTDIR)/lib –lm –lqpe –lqte
即:添加–L$(QPEDIR)/lib
6. 修改PinyinFrame.cpp
....
#include "public.h"
#include "Config.h"
const char table_file[]=
#ifdef X86
"/data/qt_x86/qtopia-2.1.1-target/MurphyPinyin/scim/pinyin_table.txt"; //wpb gaidong
#else
"/home/zaurus/.murphytalk/pinyin_table.txt";
#endif
const char phrase_index_file[]=
#ifdef X86
"/data/qt_x86/qtopia-2.1.1-target/MurphyPinyin/phrase/murphytalk_phrase_idx.txt"; //wpb gaidong
#else
"/home/zaurus/.murphytalk/murphytalk_phrase_idx.txt";
#endif
const char config_file[]=
#ifdef X86
"/data/qt_x86/qtopia-2.1.1-target/MurphyPinyin/murphytalk.conf"; //wpb gaidong
#else
"/etc/murphytalk.conf";
#endif
....
【注】:对于onst char phrase_index_file[]=部分
如果phrase中没有murphytalk_phrase_idx.txt;则写为:
"/data/qt_x86/qtopia-2.1.1-target/MurphyPinyin/phrase/WINPY.TXT"; //wpb gaidong
但是字体不是很好
7. 修改murphytalk.conf
font=efont
;font-size=16
修改为自己的中文字体,如unifont
font=unifont
;font-size=16
8. 创建目录:/opt/Qtopia/plugin/inputmethods
9. #make all
这样就会在/opt/Qtopia/plugin/inputmethods下生成四个库文件:
libmurphypinyin.so
libmurphypinyin.so.0
libmurphypinyin.so.0.0
libmurphypinyin.so.0.0.3
将该四个库文件拷贝到/data/qt_x86/qtopia-2.1.1-target/image/opt/Qtopia/plugin/inputmethods目录下:
#cp /opt/Qtopia/plugin/inputmethods/libmurphypinyin.so*
/data/qt_x86/qtopia-2.1.1-target/image/opt/Qtopia/plugin/inputmethods
10. 在qtopia的安装路径下的image/opt/Qtopia/plugin/inputmethods/编辑一个叫murphypinyin.desktop的文件:
[Desktop Entry]
Name = MurphyPinYin
Comment = Chinese Input Method
Name[zh_CN] = Murphy拼音
Comment[zh_CN] = 中文输入法
X-QPE-Library = libmurphypinyin.so
11. 启动Qtopia。这时在输入法的选择里面的确增加了Murphytalk的输入法,可以通过键盘输入中文。
【注】:如果当我按入字母的时候却没能显示出我可以选择的字库,没有任何选择的显示。比如我键入“c”,终端显示
key code is 0x43
c,0 matched
出现这种情况;主要是因为PinyinFrame.cpp文件没有修改好,其中的路径没有设置正确
////////////////////////////////////////////////////
//
// 移植Qtopia中文输入法_ARM版
////////////////////////////////////////////////////
从 下载 murphytalk-0.3_softkey.zip
1. murphytalk-0.3_softkey.zip 解压缩
2. #cd murphytalk-0.3
3. #export QTDIR=/usr/local/arm/qt_arm/qt_wpb/qte
#export QPEDIR=/usr/local/arm/qt_arm/qt_wpb/qtopia
5. 修改Makefile文件的以下内容:
LIBS= $(LIBS) –L$(QPEDIR)/lib –L$(QTDIR)/lib –lm –lqpe –lqte
即:添加–L$(QPEDIR)/lib
【注】:用Makefile 不要用Makefilex86,Makefile中用的是arm-linux-gcc编译器
6. 在开发板的文件系统/tmp下新建目录CHInput;
将scim/pinyin_table.txt;phrase/murphytalk_phrase_idx.txt;phrase/murphytalk_phrase.dat
murphytalk.conf拷贝到CHInput文件夹下面。
修改PinyinFrame.cpp
....
#include "public.h"
#include "Config.h"
const char table_file[]=
#ifdef X86
"/home/chyang/pinyin_table.txt";
#else
"/tmp/CHInput/pinyin_table.txt";//wpb gaidong
#endif
const char phrase_index_file[]=
#ifdef X86
"/home/chyang/murphytalk_phrase_idx.txt";
#else
"/tmp/CHInput/murphytalk_phrase_idx.txt"; //wpb gaidong
#endif
const char config_file[]=
#ifdef X86
"/home/chyang/murphytalk.conf";
#else
"/tmp/CHInput/murphytalk.conf"; //wpb gaidong
#endif
....
然后,为了防止在输入中文时候会有按键自动重复情况,注释掉:repeatTimer->start(500);
【注】:对于 char phrase_index_file[]=部分
如果phrase中没有murphytalk_phrase_idx.txt;则就使用WINPY.TXT"
但是字体不是很好
7. 修改murphytalk.conf
font=efont
;font-size=16
修改为自己的中文字体,如wenquanyi
font=wenquanyi
;font-size=16
也可采用unifont
font=unifont
;font-size=16
8.选择字库
从Qt4的lib/fonts中拷贝wenquanyi_120_50.qpf字体到 /usr/local/arm/qt_arm/board/lib/fonts
从qt_wpb/qte/lib/fonts中拷贝字体索引文件: fontdir 拷贝到 board/lib/fonts
修改fontdir,如下:
font wenquanyi_120_50.bdf BDF n 50 120 u
9. #make all
这样就会在/usr/local/arm/qt_arm/qt_wpb/murphytalk-0.3_softkey/murphytalk-0.3下生成四个库文件:
libmurphypinyin.so
libmurphypinyin.so.0
libmurphypinyin.so.0.0
libmurphypinyin.so.0.0.3
将该四个库文件拷贝到/usr/local/arm/qt_arm/board/plugin/inputmethods目录下:
#cp /usr/local/arm/qt_arm/qt_wpb/murphytalk-0.3_softkey/murphytalk-0.3/libmurphypinyin*
/usr/local/arm/qt_arm/board/plugin/inputmethods
10. 在qtopia的安装路径下的/usr/local/arm/qt_arm/board/plugin/inputmethods/编辑一个叫murphypinyin.desktop
的文件:
[Desktop Entry]
Name = MurphyPinYin
Comment = Chinese Input Method
Name[zh_CN] = Murphy拼音
Comment[zh_CN] = 中文输入法
X-QPE-Library = libmurphypinyin.so
11. 启动Qtopia。这时在输入法的选择里面的确增加了Murphytalk的输入法,可以通过键盘输入中文。
=====================================================================================
【关于输入法有些注意事项】:
=====================================================================================
1。3个文件(pinyin_table.txt,murphytalk_phrase_idx.txt,murphytalk.conf)位置一定按PinyinFrame.cpp里位置
放好,1个文件(murphytalk_phrase.dat)位置一定按PinyinPhrase.cpp里位置放好, 你也可以改位置。
2。murphytalk.conf 设置中文字体是efont,由于没有efont,设置为unifont也可以,字体大小size,keyboard=0不显
示键盘,=1显示,
3。如果中文无法输入,英文可以的话,就在PinyinFrame.cpp的SendKey(int u, int c)里加一句
emit key(u,c,0,true,false);
4。如果在输入中文时候会有按键自动重复情况,注释repeatTimer->start(500);
上面的语句emit key(u,c,0,true,false); 就不要加了;加了仍然会重复的
5. 当默认字体不是efont时候选字被系统工具栏遮挡的问题:可以选择字体小些的字库,比如:wenquanyi_120_50.qpf
注:efont是台湾人做的字体,所以它只能显示big5和gb2312的字体,远远达不到gbk的字数
【操作】:
(1)点击小键盘的上侧,即可打开软键盘
(2)点击shift,可以进行“造词”
词组支持。可以输入声母进行模糊匹配:如p y可以匹配所有第一字声母为p和第二字声母为y的词组。
在线造词:shift键进入在线造词状态,此时所有输入的字或词会被依次加入正在造的词组,以蓝色显示。再次按shift
键提交所造新词。【不过好像不行】