I suggest you to use EventFilters to catch touch and mouse events in multiple platforms. To doing this you have to call installEventFilter
in the constructor of your widget and implement the eventFilter
to filter the QEvent you are looking for. For example using something like this:
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;
}