jas*_*mar 14 c++ linux qt touchscreen multiplatform
我试图在Qt 5.9中从M3触摸屏处理QTouchEvent.我使用Qt Finger Print示例,它在Windows 7上工作正常但在Ubuntu 16.04上我收到鼠标事件而不是触摸事件.是Qt的错误或错误的操作系统配置?
什么更QTouchDevice::devices().size()总是等于0.
小智 1
我建议您使用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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
440 次 |
| 最近记录: |