Привет и спасибо за чтение.У меня возникают проблемы с корректным квантованием положения нескольких элементов QGraphicsItems при перетаскивании мыши в QGraphicsView.Система, которую я настроил, правильно выполняет квантование QGraphicsItem, если перетаскивает только по одному за раз, однако, если я выделил несколько элементов и перетащил их, квантовался только основной элемент (тот, который находится непосредственно под мышью), для остальных положение было установлено непрерывно,Я был бы очень признателен за любую помощь в этом.Ниже приведен соответствующий код:
Это класс MutaEvent, который наследуется от QGraphicsRectItem.Я переопределил функции mouseMoveEvent () и setPos ():
void MutaEvent::mouseMoveEvent( QGraphicsSceneMouseEvent * event )
{
QGraphicsRectItem::mouseMoveEvent(event);
setPos(pos());
}
void MutaEvent::setPos(const QPointF &pos)
{
QGraphicsRectItem::setPos(Muta::quantizePointD(pos,30,15));
emit posChanged(objectID,pos);
}
следующий бит - статическая функция в пространстве имен с именем Muta:
static QPointF quantizePoint(QPointF point,double xQuant, double yQuant)
{
double x = quantize(point.x(),xQuant);
double y = quantize(point.y(),yQuant);
QPointF quantPoint(x,y);
return quantPoint;
}
Любая помощь будет принята с благодарностью!