2楼,多半是你的配置不正确,特别是驱动的路径,export set(在这最好不要用set)就用export来设置,我遇到过这个问题,最后发现是多了一个set,有啥子问题最好把QT的源码程序调出来,自己写一个,然后把调试信息打印出来,如:你把qmousedriverfactory_qws.h的头和源文件都考到自己的程序中,然后在qmousedriverfactory_qws.cpp文件中打印调试信息,比如:
QWSMouseHandler *QMouseDriverFactory::create(const QString& key, const QString &device)
{
QString driver = key.toLower();
qDebug()<<"key:"<<key<<"device:"<<device;//看看你的驱动名称是不是正确,最容易出错的地方
#ifndef QT_NO_QWS_MOUSE_LINUXTP
qDebug()<<"1";
if (driver == QLatin1String("linuxtp") || driver.isEmpty())
return new QWSLinuxTPMouseHandler(key, device);
#endif
#ifndef QT_NO_QWS_MOUSE_YOPY
qDebug()<<"2";
if (driver == QLatin1String("yopy") || driver.isEmpty())
return new QWSYopyMouseHandler(key, device);
#endif
#ifndef QT_NO_QWS_MOUSE_VR41XX
qDebug()<<"3";
if (driver == QLatin1String("vr41xx") || driver.isEmpty())
return new QWSVr41xxMouseHandler(key, device);
#endif
#ifndef QT_NO_QWS_MOUSE_PC
qDebug()<<"4";
if (driver == QLatin1String("auto")
|| driver == QLatin1String("intellimouse")
|| driver == QLatin1String("microsoft")
|| driver == QLatin1String("mousesystems")
|| driver == QLatin1String("mouseman")
|| driver.isEmpty()) {
return new QWSPcMouseHandler(key, device);
}
#endif
#ifndef QT_NO_QWS_MOUSE_BUS
qDebug()<<"5";
if (driver == QLatin1String("bus"))
return new QWSBusMouseHandler(key, device);
#endif
#ifndef QT_NO_QWS_MOUSE_TSLIB
qDebug()<<"6";
if (driver == QLatin1String("tslib") || driver.isEmpty())
return new QWSTslibMouseHandler(key, device);
#endif
#ifndef QT_NO_QWS_MOUSE_QVFB
qDebug()<<"7";
if (driver == QLatin1String("qvfbmouse") || driver == QLatin1String("qvfb"))
return new QVFbMouseHandler(key, device);
#endif
#if !defined(Q_OS_WIN32) || defined(QT_MAKEDLL)
#ifndef QT_NO_LIBRARY
qDebug()<<"8";
if (QWSMouseHandlerFactoryInterface *factory = qobject_cast<QWSMouseHandlerFactoryInterface*>(loader()->instance(driver)))
return factory->create(driver, device);
#endif
#endif
return 0;
}