Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1416514
  • 博文数量: 1334
  • 博客积分: 645
  • 博客等级: 上士
  • 技术积分: 5762
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-25 16:56
文章分类

全部博文(1334)

文章存档

2014年(108)

2013年(1059)

2012年(169)

分类: 嵌入式

2013-09-04 16:47:23

原文地址:SYSZUXpinyin移植 作者:luozhiyong131

宿主机: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.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);

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

阅读(1429) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~