MileStone(part2)

(2009-04-05 20:16:51)

1、  下面是写接口。在qpe中,采用inputmethodface,作为plugins方式实现,现在在murphytalk代码的Pinyinlmpl.cpp中。仿照其中的connect方法实现输入法接口。例子代码参考http://www.diybl.com/course/3_program/c++/cppjs/20090307/158903.html

       我的做法是直接用test.*换掉原来的PinyinImpl.*。注意修改test.cpp中的include

 

2、  编写试验程序。用一个简单的LineEdit加上PinyinFrame的实例便可测试究竟输入法可不可行。我写了一个简单的main.cpp如下:

#include <qapplication.h>

#include "PinyinImpl.h"

#include <qnamespace.h>

 

int main(int argc, char** argv)

{

        QApplication app(argc,argv);

        app.setFont(QFont("unifont"));

         Main *m=new Main;

         m->show();

         QObject::connect(&app,SIGNAL(lastWindowClosed()), &app,SLOT(quit()));

         return app.exec();

}

3、  重新生成pro文件。由于增加了main.cpp,需要重新组织程序,可以在原有pro文件中修改,也可以用qmake –project直接生成一个新的。我的做法是后者。不过要注意生成的pro文件中要去掉没用的。比如scim中的main.cpp。这些代码都是原来开发时候测试的,现在不需要,否则会出现多个main.cpp的错误。

4、  Qmake 生成Makefile

5、  Make all。不出意外,会发现错误:

PinyinFrame.h:110: 错误:有多余的限定‘QPinyinFrame::’ 在成员 ‘get_char’

PinyinFrame.h:114: 错误:有多余的限定‘QPinyinFrame::’ 在成员 ‘get_phrase’

make: *** [.obj/release-shared-mt-emb-x86/main.o] 错误 1

这个挺奇怪的,我直观地去掉了QpinyinFrame后通过。出现新错误:PinyinFrame.cpp:198: 错误:redefinition of ‘void QPinyinFrame::resizeEvent(QResizeEvent*)’

PinyinFrame.cpp:184: 错误:‘virtual void QPinyinFrame::resizeEvent(QResizeEvent*)’ 已在此定义过

这个可能是因为打补丁时候不小心写了两次,直接把其中重复的内容去掉一个。出现新错误:

PinyinFrame.cpp: In member function ‘virtual void QPinyinFrame::mouseReleaseEvent(QMouseEvent*)’:

PinyinFrame.cpp:735: 错误:‘Global’ 未声明

PinyinFrame.cpp:736: 错误:‘Global’ 未声明

make: *** [.obj/release-shared-mt-emb-x86/PinyinFrame.o] 错误 1

这个原因是使用了qpe的东西,我暂时不知道如何处理,直接注释掉。键盘不能消失就是了。编译通过。

12、现在在当前目录MurphyPinyin目录下生成了MurphyPinyin可执行文件。可以在qvfb下查看。不过你可能发现只能输入英文不能输入中文。最后一招:PinyinFrame.cppSendKey(int u int c)里加一句emit keyuc0truefalse);重新编译,OK。(本想贴张图出来,不了老师显示不出来,罢了!)

     有可能还会出现按键自动重复等问题,请google关键字“Murphytalkqte移植”,相信可以找到答案

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值