1. 程式人生 > >QT SYSZUXpinyin 開源輸入法移植

QT SYSZUXpinyin 開源輸入法移植

宿主機:fedora9

目標平臺:min2440

交叉編譯器:EABI  arm-linux-gcc 4.3.2

SYSZUXpinyin版本: SYSZUXpinyin 1.0

一.首先是庫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,下面 

把解壓後的wenquanyi字型檔檔案拷貝到開發板的/usr/lib/fonts下

二.然後是把輸入法編譯到Qt 將原始碼包中的syszuxim.hsyszuxpinyin.h標頭檔案和syszuxpinyin.ui面板放置到你Qt程式的原始碼路徑下
1. qmake -project生成.pro檔案
.pro檔案中新增 QMAKE_LIBS += -lsyszuxpinyin (這裡一定是小l,在標準路徑下尋找,大L為在指定路徑下尋找)
在主介面原始檔 .cpp

中加入
#include "syszuxpinyin.h"
#include "syszuxim.h"
並在需要啟動輸入法的函式裡面加
QWSInputMethod* im = new SyszuxIM;
QWSServer::setCurrentInputMethod(im);

QWSServer::setCursourVisible(false);



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);

以上內容轉載自  http://blog.chinaunix.net/uid-24219701-id-3077611.html

注意:若telnet切入板子,再執行CabineOS,可能應為環境變數的原因,造成,輸入法可用,觸控式螢幕不可用的情況,這時,請reboot板子,讓其自然啟動。