我正在开发一款小巧的应用程序,它将在7英寸触摸屏的beagleboard上运行,但到目前为止我还没有得到它,我正在开发标准桌面应用程序。鼠标事件是否等同于触摸屏事件?我我正在使用QTableView,我通过以下方式禁用鼠标拖动多项选择:
void CTableView::mouseMoveEvent(QMouseEvent* event)
{
if(this->state()!=DragSelectingState)
QTableView::mouseMoveEvent(event);
}
如果用户尝试用手指选择多个单元格,此代码是否也适用于触摸屏?
答案 0 :(得分:1)
通常这很大程度上取决于你的触摸驱动程序。大多数情况下,触摸事件将被解释为鼠标左键单击。根据您的触摸驱动程序,您必须确保以正确的方式校准触摸驱动程序(例如,如果触摸驱动程序需要知道触摸事件的原点以获得正确的坐标)。
对于多点触控设备处理,我强烈建议您使用MultiPointTouchArea:http://qt-project.org/doc/qt-5/qml-qtquick-multipointtoucharea.html#details将QML内容用于您的用户界面。您也可以轻松地将QML-stuff连接到您的c ++逻辑。