Добрый день!
Мне нужно на сцене перемещать мышью QGraphicsRectItem. Причем перемещать так, чтобы они не пересекались.
Я переопределил mouseMoveEvent в QGraphicsRectItem, но события о движении мыши приходят рывками, т.е. может быть так, что в первом событии, координата мыши (1, 1), а во втором уже (10, 10).
C++ (Qt)
void GraphicsRectItem::mouseMoveEvent(QGraphicsSceneMouseEvent* event)
{
qDebug()<<event->scenePos()<<event->lastScenePos();
QGraphicsRectItem* item;
foreach (item, mItems)
{
if (this == item)
continue;
if (collidesWithItem(item, Qt::IntersectsItemBoundingRect))
{
event->accept();
return;
}
}
QGraphicsRectItem::mouseMoveEvent(event);
}
И получается следующая ситуация (на картинке):
Как сделать так, чтобы при движении мыши, двигаемый QGraphicsRectItem не пересекал никакой другой Item? Чтобы останавливался у его границы?