linux屏幕触碰事件,触摸屏中鼠标事件的捕获和传递及触摸屏的移植

本文介绍了在Linux系统中如何捕获和处理触摸屏(视为特殊鼠标)的事件,包括设备文件的交互、Qt框架下的事件处理流程。讲解了从设备缓冲区读取数据的QWSMouseHandlerPrivate::readMouseData(int)函数,以及如何根据物理数据转换为屏幕上点的数据进行定标。此外,还提到了Qt应用程序移植触摸屏操作的步骤和注意事项。
摘要由CSDN通过智能技术生成

触摸屏中鼠标事件的捕获和传递及触摸屏的移植

在Linux系统中,如果硬件设备的驱动程序被正确安装,那么在/dev路

径下会有相应的设备文件,它们是对应硬件设备的驱动程序接口,应用程序可以打开这些设备文件,从中读取的数据就对应着硬件设备传回的信息。当鼠标被点击

时,会产生中断并进入中断处理程序,在中断处理程序中,鼠标的动作会被翻译成相应的数据存在一个数据缓冲区中。用户打开设备文件后,就是从这个这个缓冲区

读取数据的。注意,这时的数据是最原始的数据。

当Qt应用程序作为GuiServer运行时,QApplication会创建一个QWSServer*类的指针qwsServer,它是一个全局的指针,在整个Qt应用程序的生命周期都存在,而且只有一个。qwsServer在创建过程中会调用QWSServer::startup(),这个函数会调用QWSServer::openMouse()和QWSServer::openKeyboard()来建立与鼠标和键盘硬件设备的连接。在Qt中,触摸屏作为一种特别的鼠标,具有和鼠标同等的处理方法。

1.openMouse()

它会从环境变量QWS_MOUSE_PROT得到鼠标的类型和设备,它的格式是protocol:device,protocol包括以下的几种:MouseMan,IntelliMouse,Microsoft等,device就是鼠标(或者触摸屏)的设备文件,一般是/dev/mouse,还可能是/dev/ps2(ps类型的鼠标),而对于触摸屏,则会是/dev/Tpanel。最后它会创建一个QWSMouseHandler。

2.QWSMouseHandler* h = newMouseHandler(ms);

newMous

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值