QT支持鼠标与触摸屏的步骤,以及鼠标事件和触摸板事件的完整分析

1.首先确定内核加载了鼠标驱动,在/dev目录下面有mouse1或者mouse0

2.设置QT运行的环境变量export QWS_MOUSE_PROTO=intelliMouse:/dev/mouse1或者export QWS_MOUSE_PROTO=intelliMouse:/dev/mice

3.设置QT运行环境变量export QWS_MOUSE_PROTO=Tslib:/dev/event1

4.运行QT程序./app -qws。


注意:当环境变量为QWS_MOUSE_PROTO=Tslib:/dev/event1 Intellimouse:/dev/mouse1时候,并且插上鼠标,鼠标和触摸屏才可以同时使用。



struct  input_event  {

struct timeval  time; //事件发生的时间

_u16  type;//事件的类型

_u16 code; //要模拟成什么按键

_u16 value;//按键是释放还是按下

}

鼠标发生按键类型事件:

其中code为0X110表示左键,value为1表按下,value为0表示释放

当code为0X111表示右键,value为1表示按下,value为0表示释放

当code为0X112表示中建,value为1表示按下中键,value为0表示释放中键


鼠标发生EV_REL事件类型的事件:

其中code为0X00,表示X方向移动,value为正时向右移动,value为负数时向左平移

当code为0X01表示Y方向移动,value为正时向下移动,value为负数时向上移动

当code为0x08时表示向滚轮的转动,value为正时,向下转动,value为负数时向上转动。




                        0   --------------------------------------->X+

|

|

|

|

|

Y+




触摸屏测试分析

点一下屏幕会报事件类型为EV_KEY(1)和EV_ABS(3)类型的事件,

其中EV_KEY类型事件的code 为0x14a,value = 0x01,value为1表示触摸按下,value = 0表示触摸抬起。


其中EV_ABS事件类型的code = 0x01时value表示ABS_Y方向的坐标值;code 为0x00时value表示X方向的坐标值;code为0x18时表示ABS_PRESSURE事件,value表示压力大小









你可能感兴趣的:(QT支持鼠标与触摸屏的步骤,以及鼠标事件和触摸板事件的完整分析)