• 9977阅读
  • 2回复

源代码:Murphytalk-0.05发布 [复制链接]

上一主题 下一主题
离线xiaobinl989
 

只看楼主 倒序阅读 楼主  发表于: 2010-10-28
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2010-10-29) —
首先感谢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

有斗志的小笔是无敌的。
离线dpa123
只看该作者 1楼 发表于: 2010-11-04
不知道有没有带,软键盘的补丁什么的?
离线stu_xk

只看该作者 2楼 发表于: 2011-03-04
太感谢楼主了O(∩_∩)O哈哈~
快速回复
限100 字节
 
上一个 下一个