首先感谢QKevin ,让我发布Murphytalk。QKevin 为 Murphytalk 移植到QTE做了大量的工作,让Murphytalk能够在QTE中
编译通过。而我在接手一个项目的时候,需要一个QTE环境下的输入法,找了很久,发现并
没有那个现成的可用的输入法。我想QTE下的中文输入法,并不是没有人做过,只是没有人拿出来开源。哎,自己动手丰衣足食,经过我的努力,现在Murphytalk 现在能够在QTE4.5.2环境下很好的运行,在从Murphytalk 开源得到好处的同时,我也想为他做一点贡献,所以将,我修改后的代码贴出来,希望大家能够能够继续修改和优化Murphytalk,让他更加好用(其中的造词功能,一直都不好使)。基于0.04版本的Murphytalk仅仅只能编译通过不能实用,这个版本就作为0.05版本。
要使用Murphytalk,你必须首先确保,你的开发板上已经能够完美的显示中文,否则,中文输入法也是徒劳。有关问题,请参考网络上,QT国际化的许多帖子。
现在,我们来把Murphytalk 编译成自己的QT库文件,方便在项目中调用。
在Murphytalk的主文件中,
qmake -project
在生成的工程文件中 修改
TEMPLATE = lib
然后
qmake
上面几步我已经做了,你直接
make就可以了 ,编译生成四个lib文件
libMurphytalk.so
libMurphytalk.so.1
libMurphytalk.so.1.0
libMurphytalk.so.1.0.0
将这四个文件,放到QTE的lib文件夹下,然后在QTE的include文件夹下,建立文件夹Murphytalk,并讲相应的
头文件依照下图的形式(看不到
图片的话,下载的包中有ReadMe.doc中有图),放入此
文件夹中,如此在你的QTE库中就有Murphytalk输入法了。(运行你的项目之前,你还需要将这个四个库下载到开发板的QTE文件夹的lib文件夹下)
接下来,在你的项目的main.cpp函数中,你必须调用输入法。
例如,如下是一个简单的测试程序,在Murphy中有一个小的测试程序,其实他只有一个main.cpp而已。
#include <QApplication>
#include <QMainWindow>
#include <QPlainTextEdit>
#include <QTextCodec>
#include <QLabel>
#include <QString>
//#include "Murphytalk/PinyinFrame.h"
#include "Murphytalk/PinyinImpl.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
const QApplication::Type type = app.type();
QMainWindow mw;
if (QApplication::GuiServer == type)
{
QPinyinImpl::installInputMethod();
}
QPlainTextEdit pte(&mw);
mw.setCentralWidget(&pte);
mw.show();
int nret = app.exec();
if (QApplication::GuiServer == type)
QPinyinImpl::releaseInputMethod();
return nret;
}
程序中,申请了一个QMainWindow对象,并填充了一个QPlainTextEditpte来作为被编辑的
窗口,通过
if (QApplication::GuiServer == type)
QPinyinImpl::installInputMethod();
。。。
if (QApplication::GuiServer == type)
QPinyinImpl::releaseInputMethod();
来
安装和卸载输入法,使用的时候,你只要在主函数中,实现安装和卸载输入法的过程就好了,这两部具体干了什么,你可以在源码中看到。
接下来,你要在你的你的项目文件中加入Murphytalk库,添加这一行
LIBS+=-lMurphytalk
qmake 与make 之后,你需要将Murphytalk文件夹中的字库文件和配置问价下载到开发板(路径可以通过修改源代码来修改,这里我贴出我修改后的路径,直接就可以使用)。
在开发板根目录中的/etc文件夹下,建立MurphyPinyin-0.05文件夹。
并将Murphytalk文件夹中相应的文件复制到这个文件夹下,如下:
你需要将就可以再你需要输入中文的时候,按ALT+Z 叫出输入法。
好了,至此,Murphytalk的QTE移植算是完成了。如果有问题,你可以联络我。
refeved
邮箱:
xiaobinl989@126.com ("L"989 不是 "1"989)
QQ: 453499959 段の错误
欢迎大家一起来探讨。
对于QTE输入法原理,如果有不明白的,可以到这里看看。
http://www.qkevin.com/里面有相关的文章,写的很好,看过你就懂了。
注:你也可以直接把解压后的Murphytalk文件中的所有文件直接加入你的项目文件夹中,然后在把他们当做普通的程序文件,加入你的程序,依旧是在main函数中添加安装和卸载输入法的代码。
源代码下载地址:
http://www.qkevin.com/archives/182