我正在尝试在QTableView中选择项目,但是当我按下并快速移动鼠标时。有些项目没有选择。 我正在使用QRubberBand并覆盖MouseMove,MousePress,MouseRealse事件:
鼠标按事件:
void tableviewTest::mousePressEvent(QMouseEvent *event)
{
QTableView::mousePressEvent(event);
mStartPoint = QPoint(event->pos().x(), event->pos().y());
mRubberBand->setGeometry (mStartPoint.x (), mStartPoint.y (), 0, 0);
mRubberBand->show ();
}
鼠标移动事件:
void tableviewTest::mouseMoveEvent(QMouseEvent *event)
{
QPoint movePoint = QPoint(event->pos ().x(), event->pos ().y ());
mRubberBand->setGeometry(QRect(mStartPoint,movePoint).normalized());
QRect rect = mRubberBand->geometry ();
if (!rect.intersects (QRect(x,y,0,0))) {
selectRow (indexAt (event->pos ()).row ());
}
this->viewport ()->update ();
mRubberBand->update ();
QTableView::mouseMoveEvent(event);
}
鼠标发布活动:
void tableviewTest::mouseReleaseEvent(QMouseEvent *inEvent)
{
mRubberBand->hide();
QTableView::mouseReleaseEvent(inEvent);
}
我的问题:如何在按下鼠标并快速移动时选择项目?如果我编码错误,请帮我解决。 谢谢大家。