嵌入式USB鼠标支持

    在linux中加入鼠标支持,首先在内核里面将mice驱动加入编译,这里用到的是usb所以还要有usb的支持,下载到板子上启动

要用鼠标,首先要知道生成的鼠标设备是哪个,直接cat 就可以了,通过cat可以知道鼠标到底可不可用,当时我发现

cat /dev/mice

cat /dev/mouse0

cat /dev/event2

cat /dev/input/event2

cat /dev/input/event2 | hexdump

移动鼠标,然后终端会打印出你的鼠标坐标

都有反应,那到底是用哪个呢,这里的event2其实就是一个input/event2的链接,而mice为所有鼠标的综合设备(即MOUSEDEV_MIX),打开这个设备可以读取所 
有鼠标设备的输入报告,然后就是导入环境变量了

导入环境变量
export QWS_MOUSE_PROTO=intellimouse:/dev/mouse0
使用触摸屏,导入环境变量
export QWS_MOUSE_PROTO=Tslib:/dev/input/event2

如果想同时两个都支持  

export QWS_MOUSE_PROTO="Tslib:/dev/input/event2 intellimouse:/dev/mouse0"

鼠标终于有反应了。

下面我将QMouseDriverFactory::create函数贴出来,大家可以对照此函数来指定driver的名字。

QWSMouseHandler *QMouseDriverFactory::create(const QString& key, const QString &device)
{
    QString driver = key.toLower();
    if (driver == QLatin1String("linuxtp") || driver.isEmpty())
        return new QWSLinuxTPMouseHandler(key, device);
    if (driver == QLatin1String("yopy") || driver.isEmpty())
        return new QWSYopyMouseHandler(key, device);
    if (driver == QLatin1String("vr41xx") || driver.isEmpty())
        return new QWSVr41xxMouseHandler(key, device);
    if (driver == QLatin1String("auto")
        || driver == QLatin1String("intellimouse")
        || driver == QLatin1String("microsoft")
        || driver == QLatin1String("mousesystems")
        || driver == QLatin1String("mouseman")
        || driver.isEmpty()) {
        return new QWSPcMouseHandler(key, device);
    }
    if (driver == QLatin1String("bus"))
        return new QWSBusMouseHandler(key, device);
    if (driver == QLatin1String("tslib") || driver.isEmpty())
        return new QWSTslibMouseHandler(key, device);
    if (driver == QLatin1String("qvfbmouse") || driver == QLatin1String("qvfb"))
        return new QVFbMouseHandler(key, device);
#ifndef QT_NO_LIBRARY
    if (QWSMouseHandlerFactoryInterface *factory = qobject_cast<QWSMouseHandlerFactoryInterface*>(loader()->instance(driver)))
        return factory->create(driver, device);
#endif
    return 0;
}

还有需要注意的是QWS_MOUSE_PROTO这个环境变量是Qt程序运行时才会去读取的,在tslib的程序中好像鼠标还是不能用 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值