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
把解壓後的wenquanyi字型檔檔案拷貝到開發板的/usr/lib/fonts下
二.然後是把輸入法編譯到Qt中 將原始碼包中的syszuxim.h和syszuxpinyin.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板子,讓其自然啟動。