Qt移植对USB鼠标键盘、触摸屏的支持

、USB键盘

经过一番搜索,发现对Qt键盘的支持主要关系到两个方面:

1、 键盘类型确定:

      4.7以前的Qt版本,如果是PS2圆孔键盘,Qt编译时需加上选项:-qt-kbd-vr41xx(未测试);如果是USB键盘,需加上-qt-kbd-usb选项。
      Qt4.7.3默认的是tty,对于USB键盘可用,不需要配置。

2、环境变量设置:

然后移植到目标板上,还需要设置环境变量QWS_KEYBOARD:

$export QWS_KEYBOARD="USB:/dev/input/event0"

对于qt鼠标键盘移植问题,还是有点纳闷。

$export set QWS_KEYBOARD="TTY:/dev/tty1"
 根据不同的开发板,这个似乎不同。我的:
       $export set QWS_KEYBOARD="TTY:/dev/input/event4"
qt的程序有键盘输入值,但是是很多不规则的字符集,不知道为什么。
       $./qt -qws 
Could not initialize virtual console switching.

问题解决了:

不要使用QWS_KEYBOARD,这个设置适合自己做按键;使用QWS_USB_KEYBOARD,这个是支持USB标准键盘的。

$export QWS_USB_KEYBOARD=/dev/input/event4

3、说明:

提示:可以用 $cat /dev/input/event 拔插USB键盘,查看哪个是你的键盘设备节点。有两个设备节点,可以用

$cat /dev/input/event4 或$cat  /dev/input/event5 回车,再按键盘,看终端是否有字符输出,可以确定可用的设备节点。

推荐帖子:

http://www.qtcn.org/bbs/simple/?t47670.html

二、USBS鼠标:

看大网上的同志用:

TSLIB_QWS_MOUSE_PROTO="TPanel:/dev/event0 USB:/dev/mouse0

双飞燕:

TSLIB_QWS_MOUSE_PROTO="TSLIB:/dev/event0 Itellimouse:/dev/mouse0

TSLIB_QWS_MOUSE_PROTO="TSLIB:/dev/event0 MouseMap:/dev/mouse0

1、环境变量设置:

1.1 微软鼠标(USB无线)

不同的鼠标环境变量设置可能不一样。我的是Microsoft的:

TSLIB_QWS_MOUSE_PROTO="Microsoft:/dev/input/event6 TSLIB:/dev/input/touchsreen0"

$export TSLIB_QWS_MOUSE_PROTO="linuxtp:/dev/input/event6 TSLIB:/dev/input/touchsreen0"

这样设置,打开Qt程序,开始可见的鼠标箭头,在鼠标点击后消失了。

$export TSLIB_QWS_MOUSE_PROTO="MouseMan:/dev/input/event6 TSLIB:/dev/input/touchsreen0"

这样设置,打开Qt程序,开始可见的鼠标箭头,鼠标能移动一下下。

$./qt -qws

hidraw: pid 1884 passed too short report

hidraw: pid 1884 passed too short report

hidraw: pid 1884 passed too short report

hidraw: pid 1884 passed too short report

hidraw: pid 1884 passed too short report

hidraw: pid 1884 passed too short report

hidraw: pid 1884 passed too short report

1.2 雷柏鼠标(USB无线)

我用雷柏的USB无线鼠标:

$export QWS_MOUSE_PROTO="linuxtp:/dev/hidraw3 TSLIB:/dev/input/touchsreen0"

鼠标能够一定,但是移动很絮乱。无法点击想选中的目标。

解决了鼠标不可用的问题,我还未来得及研究,先写着。

1.3 最新进展,鼠标可用

配置内核,重新编译内核:

#vim arm/arch/omap3_stalker_defconfig

CONFIG_INPUT_MOUSEDEV=y

CONFIG_INPUT_MOUSE=y

不用配置QWS_MOUSE_PROTO,配置过的

#export QWS_MOUSE_PROTO=""

这样鼠标触摸屏都可以用了,鼠标很正常,触摸可以用,但是到处乱跳。

下面三个配置参数没有找到,我也没配置,也可以用的。

CONFIG_INPUT_MOUSEDEV_PSAUX=y 
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768

1.4 鼠标、触摸屏同时使用

export QWS_MOUSE_PROTO="tslib:/dev/input/touchscreen0 mouseman:/dev/input/mice"

3、说明:

帖子推荐:

http://www.linuxforum.net/forum/showflat.php?Cat=&Board=TI&Number=728763&view=&sb=&o=&vc=1

上条验证有用。

http://topic.csdn.net/u/20120722/17/222d09dd-a46f-4748-b936-61dbed26729d.html?seed=1054718373&r=79200954#r_79200954

http://blog.21ic.com/user1/2177/archives/2006/32818.html

=====================================

SNO:

/usr/etc/ts.conf中的配置。
今天主要是完成tslib在mini210开发板上的移植,传统的移植方法在这个上面根本行不通,不得不说,不知内幕,你永远都不会懂,一个黑匣子会难死多少脑细胞啊,在还好我们有陈sir,呵呵,下面写一下主要的过程和重点:
首先是ts.conf,module_raw input修改成module_raw friendlyarm-ts-input,其余相同 。其次是friendlyarm-ts-input.so,在友善之臂自带的文件系统中/usr/lib/ts目录下,可以把整个ts目录拷贝取代编译 tslib形成lib/ts目录。然后是拷贝相应的libts-1.0.so.0到自己做的文件系统/lib下,最后是配置环境变量在/etc /profile中加入
export T_ROOT=/opt/tslib
export LD_LIBRARY_PATH=$T_ROOT/lib //指定tslib库文件路径
//export TSLIB_CONSOLEDEVICE=none //tslib运行需要的控制台,这里就是LCD屏幕 ,设定控制台设备为none,否则默认为/dev/tty,
export TSLIB_FBDEVICE=/dev/fb0 //指定帧缓冲设备 
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_TSDEVICE=/dev/touchscreen-1wire //指定触摸屏设备节点文件
export TSLIB_CALIBFILE=/etc/pointercal //指定触摸屏校准文件pintercal的存放位置export QWS_MOUSE_PROTO=tslib:/dev/touchscreen-1wire
执行ts_calibrate校验程序。

时间: 2024-10-06 06:30:29

Qt移植对USB鼠标键盘、触摸屏的支持的相关文章

Qt on Android: Qt Quick事件处理之鼠标、键盘、定时器

在<Qt on Android: Qt Quick 事件处理之信号与槽>中介绍了 QML 中如何使用内建类型的信号以及如何自定义信号,这次我们来看看如何处理鼠标.键盘.定时器等事件.这些时间在处理时,通常是通过信号来完成的. 广而告之:我正在参加 CSDN 博文大赛,请给我的参赛文章<Qt on Android: Qt Quick 事件处理之信号与槽>投票,谢谢. 鼠标事件处理 桌面开发的话,难免要处理鼠标事件-- 变色矩形示例 看一个简单的处理鼠标事件的例子,先看代码(handl

DM816X 实现 USB HID Gadget 鼠标键盘功能

开发环境: 平台: DM8168 内核 :linux 2.6.32 RDK:DVRRDK_04.00.00.03 USB口:DM8168有两个USB口可供选择,因为特殊原因我选择的是USB1,请根据实际需要选择USB口 ,下面的配置会稍微有些不同. 1配置内核 依据参照http://processors.wiki.ti.com/index.php/DM81xx_AM38XX_USB_User_Guide#Introduction http://processors.wiki.ti.com/ind

经亲自实验,一台Windows电脑,同时接入2个USB鼠标和2个USB键盘,均可正常使用。

今天解决了一个键盘的冲突问题,突然想起来一个自己想了很久一直没做的实验,一台Windows电脑,同时接入2个USB鼠标和2个USB键盘,结果如何. 两个键盘可同时打字,均会录入,由于条件限制,不能实验完全同时按两个键盘. 两个鼠标均可使用,共享一个鼠标指针,两个鼠标做相反移动式,鼠标指针移动,向移动更大的鼠标方向移动.

移植QT5.6到嵌入式开发板(史上最详细的QT移植教程)

目前网上的大多数 QT 移植教程还都停留在 qt4.8 版本,或者还有更老的 Qtopia ,但是目前 Qt 已经发展到最新的 5.7 版本了,我个人也已经使用了很长一段时间的 qt5.6 for windows ,本文就来介绍一下QT在嵌入式环境的搭建. 移植以到 JZ2440 为例,使用韦老大提供的 ubuntu9.10 虚拟机作为移植环境.当然,其它虚拟机也是可以的,我同样在 ubuntu14.04 移植成功,只不过需要额外装一些库,后面我会简单提及. 此外,我尝试使用 4.3.2 版本的

基于mini2440的Qt移植

花了很长时间,终于把Qt移植到mini2440开发板上了,不能说完全成功,总算是完成一大步,各中过程心酸,废话不多说,下面正式讲解移植过程. 移植环境: win7系统,虚拟机是ubuntu12.04 友善之臂mini2440开发板 Qt版本:4.8.6   交叉编译器版本:4.4.3 一.虚拟机Qt开发环境的搭建 1.上Qt的官网下载Qt的源码包:http://qt-project.org/downloads,下载版本是4.8.6,也可以下载其他的版本 2.安装Qt所需要支持的文件 sudo a

USB鼠标设备简单驱动设计

USB(Universal Serial Bus ),通用串行总线,是一种外部总线标准,用于规范电脑与外部设备的连接和通讯.是在1994年底由英特尔.康柏.IBM.Microsoft等多家公司联合提出的,自1996年推出后,已成功替代串口和并口,成为当今个人电脑和大量智能设备的必配接口之一. linux内核支持两种类型的USB驱动程序,一种是PC机的USB驱动程序控制插入其中的USB设备,另一种是USB设备和主机通信. 第一种软件架构                               

Linux 模拟 鼠标 键盘 事件

/************************************************************************ * Linux 模拟 鼠标 键盘 事件 * 说明: * 以前看到有些软件能够控制鼠标移动,键盘操作等功能,总想知道这些到底 * 是怎么做到的,好像是2年前也尝试去做这件事,但那时候对知识的匮乏直接导致 * 无法进行,早上突然想到这件事,于是又搜索了一下,鉴于目前经常接触Linux * 驱动,对这些东西的理解也就很容易. * * 2016-2-27 深

Delphi下利用WinIo模拟鼠标键盘详解

http://www.cnblogs.com/rogee/archive/2010/09/14/1827248.html 本文最早在编程论坛上发表,文章地址:http://programbbs.com/bbs/view12-17207-1.htm,相关文件可以在上述地址的页面中下载.转载时请注明出处. 前言 一日发现SendInput对某程序居然无效,无奈只好开始研究WinIo.上网查了很多资料,发现关于WinIo模拟鼠标键盘的资料很少,有的也只是支言片语讲的不是很详细,而且大部分都是关于模拟键

学习Linux下s3c2440的USB鼠标驱动笔记

USB驱动学习笔记: 2 1.ARM-Linux下USB驱动程序开发 3 1.1.1.linux下USB配置: 4 *********(MassStorage:存储设备)************************************ 5 -> Device Drivers 6 -> SCSI device support(通用设备) 7 -> SCSI disk support (磁盘支持) 8 -> SCSI device support(设备支持) 9 10 ->