• 16280阅读
  • 12回复

qt-arm上的软键盘如何实现? [复制链接]

上一主题 下一主题
离线zheng0929
 
只看楼主 正序阅读 楼主  发表于: 2009-06-09
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2010-07-03) —
大家好。根据www.qt-apps.org中的例子,我已经实现了X11环境下的软键盘。但是现在需要做一个在arm上运行的软键盘,这个例子就不行了,在论坛里面查看了一些帖子,发现应该用QWSServer::sendKeyEvent来实现。请问大家有没有相关的例子或者方法?非常感谢!zyj19840929@163.com
离线lpdpzc

只看该作者 12楼 发表于: 2015-10-12
回 wangzhidanj 的帖子
wangzhidanj:[表情]各位大哥大姐
谁有在ARM下能跑的代码 发给我下
刚学qt焦头烂额啊 急急急啊!
411209390@qq.com
....... (2011-08-12 10:52) 

同求啊,希望大神们发出来参考一下
离线zlgdgzl
只看该作者 11楼 发表于: 2011-08-12
    没有啊!可能我肚子水还没你多呢?
离线wangzhidanj
只看该作者 10楼 发表于: 2011-08-12
各位大哥大姐

谁有在ARM下能跑的代码 发给我下
刚学qt焦头烂额啊 急急急啊!
411209390@qq.com
感激不尽!
离线songfangfang
只看该作者 9楼 发表于: 2010-07-08
回 8楼(磐石) 的帖子
有这个类的,在qt的project下设置arm编译就行了,我只是加了个头编译试了一下,在在这个帖子之前理解有错误,以为用QWSServer的openkeyboard()函数就可以直接打开软键盘widget,然后直接点击就可以用了,和键盘一样,可是却实现不了,现在自己做一个widget,实现一个QWSInputMethod类的派生类, 在此派生类中显示和操作软键盘widget,不知道这样是不是绕弯路了,没做过QWSServer,能不能指点一二啊?
离线磐石
只看该作者 8楼 发表于: 2010-07-08
Re:回 5楼(磐石) 的帖子
引用第6楼songfangfang于2010-07-08 10:08发表的 回 5楼(磐石) 的帖子 :
磐石,你好
    我在程序中包含了头文件QWSServer(下面有红色下划线),编译X11环境下的程序的时候报错,编译ARM架构下的时候没有错误,
现在我就是要做一个软键盘,仅是英文的输入就可以了,可是现在看不到他的类,虽然没有出错,但感觉还是有问题的,你知道是什么原因吗?

ARM下,QT是采用C/S架构的,就有服务端和客户端一说,而QWSServer这个类就是在服务端起作用的,但在PC机中就没有这个类,你在PC机编写应用程序可能是集成开发环境智能提示的作用使QWSServer(下面有红色下划线),即然你说在QTE中编译没错,你为何不把程序移植到板子里试试呢
不怕做不到,只怕想不到
离线songfangfang
只看该作者 7楼 发表于: 2010-07-08
回 3楼(guhao) 的帖子
在论坛中没有找到您的贴啊?
离线songfangfang
只看该作者 6楼 发表于: 2010-07-08
回 5楼(磐石) 的帖子
磐石,你好
    我在程序中包含了头文件QWSServer(下面有红色下划线),编译X11环境下的程序的时候报错,编译ARM架构下的时候没有错误,
现在我就是要做一个软键盘,仅是英文的输入就可以了,可是现在看不到他的类,虽然没有出错,但感觉还是有问题的,你知道是什么原因吗?
离线磐石
只看该作者 5楼 发表于: 2010-07-08
Re:回 3楼(guhao) 的帖子
引用第4楼songfangfang于2010-07-07 14:30发表的 回 3楼(guhao) 的帖子 :
QWSServer好像要4.6以上,我用的是4.5.3的


QWSServer应该在QTE(Qt for Embedded Linux)中都有,而且应该仅在QTE中有,
写软件盘时要注意的几问题,
1,如果说仅要实现英文输入法的话,仅用QWSServer::sendKeyEvent(...)就够了,
但要实现中文输入法则必须要继承QWSInputMethod这个类来写一个软件盘,用QWSInputMethod::sendCommitString ( const QString & commitString, int replaceFromPosition = 0, int replaceLength = 0 )  
具体这两个类用法查看帮助文档,
2,包含软件盘的应用程序必须是以服务进程启动,个人理解:QT中第一个运行的程序默认为服务进程,也就是运行时要加参数 -qws,以后运行的进程不用这个参数
[ 此帖被磐石在2010-07-08 09:51重新编辑 ]
不怕做不到,只怕想不到
离线songfangfang
只看该作者 4楼 发表于: 2010-07-07
回 3楼(guhao) 的帖子
QWSServer好像要4.6以上,我用的是4.5.3的
离线guhao

只看该作者 3楼 发表于: 2010-07-04
回 楼主(zheng0929) 的帖子
这个我发过帖子了,可以参考下怎么实现的,需要QWSServer,我移植过没有问题!
离线songfangfang
只看该作者 2楼 发表于: 2010-07-02
回 楼主(zheng0929) 的帖子
楼主你好,我现在也在做软键盘,能不能把你在X11上实现的软键盘代码发给我一份,谢谢诶 fangsfang@126.com
离线duduqq

只看该作者 1楼 发表于: 2009-06-10
www.qt-apps.org那个例子好像就是在嵌入式LINUX下用的,不要改它的代码看看能不能运行。
你也可以把XTestFakeKeyEvent这个函数换成QWSServer::sendKeyEvent试一下啊
快速回复
限100 字节
 
上一个 下一个