您的位置:首页 > 编程语言 > Qt开发

tslib、qt相关:QWS_MOUSE_PROTO该如何写

2013-03-05 21:02 211 查看
原文来自: http://www.cnblogs.com/baizx/archive/2010/04/08/1707790.html

该环境变量主要是帮助QMouseDriverFactory也就是Qt鼠标设备的枚举者来创建你想要的鼠标设备而不是系统默认的。

默认该环境变量时空的,其实大部分情况下空就可以了,Qt能够根据系统配置猜测出你想要的设备,并且这个大多数情况下好像都是正确的。不过如果错了我们可以通过设置该变量来纠正。

该环境变量的格式如下:

export QWS_MOUSE_PROTO="<driver>[:<driver specific options>]
         <driver>[:<driver specific options>]
         <driver>[:<driver specific options>]"

中间可以通过空格来指定多个鼠标设备,目前我也没用到过,因为一般有一个输入设备就够了,最常用的格式如下:

export QWS_MOUSE_PROTO="tslib:/dev/ts"

第一个,指明要使用tslib这个驱动,对应的设备名字是/dev/ts

就这么简单。

下面我将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;

}

我将那些乱起八糟的宏都去掉了,方便大家查找。大多数情况下,是不可能所有这些设备都可用的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: