Добрый день!
Мне нужно на сцене перемещать мышью 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? Чтобы останавливался у его границы?