板子上移植使用软键盘

来源:互联网 发布:mac ps cs4破解版下载 编辑:程序博客网 时间:2024/06/01 09:07

由于自己写了个Qt界面,移动到板子上后,需要往textEdit中输入字符。如果板子上有USB键盘驱动,可以使用键盘的话,就可以之直接敲击键盘输入,如果没有,需要自己做一个软件盘。

我偷了个懒,在网上参考别人的方法,直接下载了个SYSZUXpinyin输入法,照着前人的方法进行移植。

1、库libsyszuxpinyin.so的移植:

   使用qmake生成Makefile,我的qmake的路径是 /witech/qt-everywhere-opensource-src-4.7.1/qt-everywhere-opensource-src-4.7.1/bin/qmake,在SYSZUXpinyin目录下,使用qmake。

   然后make;

   生成了4个库文件:libsyszuxpinyin.so    libsyszuxpinyin.so.1  libsyszuxpinyin.so.1.0   libsyszuxpinyin.so.1.0.0

   将这4个库文件拷到交叉编译器的lib中,否则交叉编译的时候找不到这些库,我的交叉编译器的lib路径是: /usr/local/arm/4.3.2/arm-none-linux-gnueabi/lib

   同样,将这4个库文件拷贝到板子上的库中。


2、在界面上使用该输入法:

      打开我的Qt Creator写的界面工程,将syszuxim.h和syszuxpinyin.h和syszuxpinyin.ui添加到我的工程的头文件和界面文件中。

     在我的GUI.pro文件中添加代码:QMAKE_LIBS +=-lsyszuxpinyin(必须把那4个库放到交叉编译器下的lib中,否则这个地方会出错,找不到lsyszuxpinyin)。

      在头文件中把syszuxim.h和syszuxpinyin.h加进去include。

     在需要使用该输入法的地方添加:

       QWSInputMethod* im = new SyszuxIM;
       QWSServer::setCurrentInputMethod(im);
       im->updateHandler(QWSInputMethod::FocusIn);   (可不要)

    我在该界面的构造函数中添加了  QWSInputMethod* im = new SyszuxIM;      QWSServer::setCurrentInputMethod(im); 这两句话,就可以了。后来在板子上运行时,这个软键盘好像会自动找到textEdit的焦点。当我点击一下TextEdit的时候,软键盘就可以弹出。进行输入。

     然后在该项目文件夹目录下用qmake生成Makefile。我的qmake路径是/witech/qt-everywhere-opensource-src-4.7.1/qt-everywhere-opensource-src-4.7.1/bin/qmake。

     最后make,生成可执行文件。

3、需要改进

     后来成功将软键盘移植到板子上了,后来发现软键盘有个缺点,就是软键盘上输入量数据,确认后,数据一致都在软键盘的textEdit上,不能不清除,非常不方便下次的数据输入。接下来的事情就是需要将软键盘进行优化,改善一下功能。



   



0 0
原创粉丝点击