回复: 如何实现软键盘(已找到例子)
#11 [duduqq 08-11 16:49]
引用第10楼ynshisss于2008-08-11 15:19发表的 :
我改了你给的例子,不过只能在qtopia core下运行因为要用
QWSServer::sendKeyEvent
Use this function to send key events generated by "virtual keyboards"
不是吧,如何才能在PC机上运行
我今天把例子编译了一下,不能通过,说没有Xtst库
#12 [ynshisss 08-11 18:22]
1、你找的例子必须在Linux的X环境下才能使用,可能你的X环境没有安装相关的X开发库,所以编译提示说找不到Xtst库,你自己把X开发库装上就行了。
2、我修改的后的程序只能在Qtopia core环境下运行,因为我把和X相关语句都除掉了,这是因为我想让程序在非X环境下运行,但是离开了X环境,想要发送键盘事件,只能借助Qtopia core中的QWSServer机制,QWSServer在Qt-X11下是不支持的,是Qt-Core独有的,其实QWSServer中也就是用到QWSServer::sendKeyEvent,例如:
QWSServer::sendKeyEvent (QChar('A').unicode(), 9, Qt::NoModifier, true, true);
然后有接收焦点的可编辑控件就会收到
3、其实真正的软键盘要依赖其所在平台的GUI管理器,比如你的例子就要X窗口环境,这样软键盘发送的事件才能传递到正确的GUI组件中去,如果你只是针对某个应用程序才需要一个软键盘,而且软键盘也不需要很复杂,你可以就直接把它嵌入到该应用中,至于判断鼠标点下哪个键并触发相应操作,可以用信号也可以用事件,如果你用的是Qtopia Core的话,就用QWSServer事件机制,如果你一定要做一个真正意义的软键盘,哪就参照例子中如何与X环境交互,同理在
Window下,如果你知道Windows API的话
#13 [duduqq 08-11 21:47]
引用第12楼ynshisss于2008-08-11 18:22发表的 :
1、你找的例子必须在Linux的X环境下才能使用,可能你的X环境没有安装相关的X开发库,所以编译提示说找不到Xtst库,你自己把X开发库装上就行了。
2、我修改的后的程序只能在Qtopia core环境下运行,因为我把和X相关语句都除掉了,这是因为我想让程序在非X环境下运行,但是离开了X环境,想要发送键盘事件,只能借助Qtopia core中的QWSServer机制,QWSServer在Qt-X11下是不支持的,是Qt-Core独有的,其实QWSServer中也就是用到QWSServer::sendKeyEvent,例如:
QWSServer::sendKeyEvent (QChar('A').unicode(), 9, Qt::NoModifier, true, true);
然后有接收焦点的可编辑控件就会收到
3、其实真正的软键盘要依赖其所在平台的GUI管理器,比如你的例子就要X窗口环境,这样软键盘发送的事件才能传递到正确的GUI组件中去,如果你只是针对某个应用程序才需要一个软键盘,而且软键盘也不需要很复杂,你可以就直接把它嵌入到该应用中,至于判断鼠标点下哪个键并触发相应操作,可以用信号也可以用事件,如果你用的是Qtopia Core的话,就用QWSServer事件机制,如果你一定要做一个真正意义的软键盘,哪就参照例子中如何与X环境交互,同理在
.......
多谢啊,我是的LINUX下用的,得好好研究才行,现在我还不是很清楚先
#14 [kingt 01-13 10:15]
终于让我找到了,哈哈,谢谢了
#15 [wvins 01-13 11:19]
收藏