宿主机:fedora9
目标平台:min2440
交叉编译器:EABI arm-linux-gcc 4.3.2
SYSZUXpinyin版本: SYSZUXpinyin 1.0
源码包: syszuxpinyin1.0.rar
一.首先是库libsyszuxpinyin.so的移植
1. 将 SYSZUXpinyin.tar.bz2 拷到/tmp/进行解压 然后 cd SYSZUXpinyin
2.修改syszuxpnyin.pro文件
TEMPLATE = lib
在.pro中添加
RESOURCES += syszuxpinyin.qrc(可能已经修改完毕)
3. qmake
4. make
把生成的
libSYSZUXpinyin.so
libSYSZUXpinyin.so.1
libSYSZUXpinyin.so.1.0
libSYSZUXpinyin.so. 1.0.0
库文件拷到 开发板/nfs/rootfs/lib,交叉编译器/usr/local/arm/4.3.2/arm-none-linux-gnueabi/lib,下面
二.然后是把输入法编译到Qt中
将源码包中的syszuxim.h和syszuxpinyin.h头文件和syszuxpinyin.ui面板放置到你Qt程序的源代码路径下
1. qmake -project生成.pro文件
将.pro文件中添加 QMAKE_LIBS += -l syszuxpinyin (这里一定是小l,在标准路径下寻找,大L为在指定路径下寻找)
在主界面源文件 .cpp中加入
#include "syszuxpinyin.h"
#include "syszuxim.h"
并在需要启动输入法的函数里面加
QWSInputMethod* im = new SyszuxIM;
QWSServer::setCurrentInputMethod(im);
2. qmake
3. make
4,开发板上执行程序时可以只定中文字库,比如:./xxx -qws -font unifont(用qt自带的unifont中文字库) 或者从网上下载wenquanyi中文字库,解压到/lib/fonts下,并在执行时只定比如:./xxx -qws -font wenquanyi
注意:qt的源代码 main函数中,QApplication app(argc,argv);下添加
QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));或者QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
因为此输入法只有是gb2312编码集才能支持中文的显示,不然看不到中文。setCodecForTr一定要在QApplication后面。不然没有效果。而且这种方法只会转换经过tr函数的字符串,并不转换不经过tr函数的字符串.此种方法只能让输入法显示中文,qt应用程序无法使用中文因为qt应用程序使用UTF-8编码集,所以如果要在程序中使用中文可以这样转换:
QTextCodec *text=QTextCodec::codecForName("UTF-8");
QString str=text->toUnicode("帮助");
QMenu* helpMenu=new QMenu(str,this);