最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】qt中鼠标能显示但是无法移动

工作和技术 crifan 3894浏览 0评论

【问题】

在完成了Linux kernel中的对应的一个模拟鼠标的输入设备(input device)easypoint驱动后,验证了该驱动可以正常工作了,输入

cat /dev/input/event1 | hexdump

然后移动该鼠标设备,会打印类似如下信息:

0000000 0f35 0807 3114 0004 0002 0000 ffff ffff
0000010 0f35 0807 3155 0004 0002 0001 0001 0000
0000020 0f35 0807 3165 0004 0000 0000 0000 0000
0000030 0f35 0807 6faf 0005 0002 0000 0001 0000
0000040 0f35 0807 6ff3 0005 0002 0001 ffff ffff
0000050 0f35 0807 7002 0005 0000 0000 0000 0000
0000060 0f35 0807 c03b 0005 0002 0000 0001 0000
0000070 0f35 0807 c07d 0005 0002 0001 ffff ffff
说明鼠标工作正常了。并且保证了,在编译qt的时候,是加了对应的鼠标支持的:

在buildroot的menuconfig中,已经选上了qt的鼠标支持:

Package Selection for the target —>

Graphic libraries and applications (graphic/text) —>

[*] Qt —>      

Mouse drivers —>

| |                         [*] pc
| |                         [*] bus

但是,在qt的测试程序里面,鼠标可以显示,但是移动easypoint后,鼠标不动。

【解决办法】

1。qt中,由于没去设置键盘所对应的环境变量,但是默认已经能够支持键盘锁对应的输入设备/dev/input/event0了,键盘也是可以正常工作的,上下左右,Enter,Tab等按键功能都是可以的。

而此处鼠标不能支持,根据之前看的帖子,第一反应就是去加上鼠标所对应环境变量。

根据这个官方的文档:

http://doc.trolltech.com/4.3/qtopiacore-envvars.html

加上了对应的变量:

export QWS_MOUSE_PROTO="MouseMan:/dev/input/event1"

试了试,发现还是不能工作,那就又试了其他的:

export QWS_MOUSE_PROTO="IntelliMouse:/dev/input/event1"
export QWS_MOUSE_PROTO="Microsoft:/dev/input/event1"

都还是不能工作。(注:此处不是触摸板,所以,Tslib或者LinuxTP就肯定不是我们所用到的,而VR41xx和Yopy感觉也都是特殊的,不是我们这里要用的)

2。参考别人的帖子:

http://www.linuxforum.net/forum/showflat.php?Cat=&Board=TI&Number=728584

中介绍的:

CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768

CONFIG_INPUT_MOUSE=y

去把对应的Linux kernel中的对应的对鼠标的支持都加上:

Device Drivers —>

Input device support —>

<*>   Mouse interface                                                                           | |
[*]     Provide legacy /dev/psaux device                                                        | |
(1024) Horizontal screen resolution                                                            | |
(768)   Vertical screen resolution                                
<*>   Event interface
[*]   Mice —>
这样,重新编译一个新的uImage,再去试了试,不论是用:

export QWS_MOUSE_PROTO="MouseMan:/dev/input/event1"

还是
export QWS_MOUSE_PROTO="IntelliMouse:/dev/input/event1"

鼠标都还是无法移动。

最后,想起了那个帖子中的:

“改完之后就直接好了,不用改QWS mouse参数,改了反而不对了”

然后去重新设置该变量为空(或者不要去设置该变量):

export QWS_MOUSE_PROTO=

结果,qt成功识别鼠标,可以移动鼠标了。真是有点无语。。。

最后的当前环境变量贴出来,以备后查:

# env
HISTFILESIZE=1000
INPUTRC=/etc/inputrc
USER=root
HOSTNAME=uclibc
LD_LIBRARY_PATH=/usr/lib
HOME=/
QTDIR=/usr
PAGER=/bin/more
PS1=#
LOGNAME=root
QT_QWS_FONTDIR=/usr/lib/fonts
TERM=vt102
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/local/bin
DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
HISTSIZE=1000
SHELL=/bin/sh
QWS_DISPLAY=LinuxFb:/dev/fb0
PWD=/
QWS_MOUSE_PROTO=
EDITOR=/bin/vi

转载请注明:在路上 » 【已解决】qt中鼠标能显示但是无法移动

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (2)

  1. 回复bobo_508:
    该帖子的的别人回复:
    “我对比过两个板子的配置文件,就是.config后缀的两个文件,跟鼠标相关的有下面几个同,你在devkit8000上加上就可以了。在make xconfig中我也不知道选那几个,就是直接在.config文件中添加的。
    CONFIG_INPUT_MOUSEDEV=y
    CONFIG_INPUT_MOUSEDEV_PSAUX=y
    CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
    CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768


    CONFIG_INPUT_MOUSE=y

    应该是跟输入驱动相关的设置中加入mouse就可以了。你试试吧。 ”
    againinput414年前 (2010-07-21)回复
  2. 请问下???

    中介绍的:
    CONFIG_INPUT_MOUSEDEV=y
    CONFIG_INPUT_MOUSEDEV_PSAUX=y
    CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
    CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768


    CONFIG_INPUT_MOUSE=y
    去把对应的Linux kernel中的对应的对鼠标的支持都加上:


    具体在哪加呢?不是很清楚
    bobo_50814年前 (2010-07-17)回复
82 queries in 0.154 seconds, using 22.13MB memory