我正在尝试在Qt5.9中处理来自M3触摸屏的QTouchEvent。我使用的是Qt Finger Print example,它在Windows7上运行良好,但在Ubuntu16.04上,我收到的是鼠标事件,而不是触摸事件。是Qt的问题还是操作系统配置错误?
更重要的是,QTouchDevice::devices().size()总是等于0。
发布于 2020-03-04 09:56:48
我建议你在多个平台上使用EventFilters来捕捉触摸和鼠标事件。为此,您必须在小部件的构造函数中调用installEventFilter,并实现eventFilter来过滤您要查找的QEvent。例如,使用下面这样的内容:
bool ECGPlot::eventFilter(QObject *o, QEvent *ev) {
bool ret = false;
switch (ev->type ()) {
case QEvent::TouchBegin:
ret = true;
break;
case QEvent::TouchUpdate:
ret = true;
break;
case QEvent::TouchEnd:
ret = true;
break;
case QEvent::Wheel:
ret = true;
break;
case QEvent::MouseButtonPress:
ret = true;
break;
case QEvent::MouseButtonRelease:
ret = true;
break;
case QEvent::MouseMove:
ret = true;
break;
}
return ret;
}https://stackoverflow.com/questions/46527220
复制相似问题