Я разрабатываю крошечное приложение, которое будет работать на beagleboard с 7-дюймовым сенсорным экраном, но у меня его пока нет, и я работаю над разработкой стандартного настольного приложения. Являются ли события мыши равными событиям сенсорного экрана? QTableView, и я отключил перетаскивание мышью нескольких элементов путем:
void CTableView::mouseMoveEvent(QMouseEvent* event)
{
if(this->state()!=DragSelectingState)
QTableView::mouseMoveEvent(event);
}
Будет ли этот код работать на сенсорном экране, если пользователь попытается выбрать несколько ячеек с пальцами?
Обычно это сильно зависит от вашего сенсорного драйвера. В основном сенсорные события будут интерпретироваться как щелчки левой кнопкой мыши. И, в зависимости от вашего сенсорного драйвера, вы должны убедиться, что сенсорный диск откалиброван правильно (например, если сенсорный драйвер должен знать происхождение события касания, чтобы получить правильные координаты).
Для обработки мультитач-устройств я настоятельно рекомендую использовать QML-материал для вашего пользовательского интерфейса с помощью MultiPointTouchArea: http://qt-project.org/doc/qt-5/qml-qtquick-multipointtoucharea.html#details. Вы можете легко подключить QML-материал к вашей логике С++.
QTouchEvent
.