您好,感谢您的阅读。在 QGraphicsView 中拖动鼠标时,我无法正确量化多个 QGraphicsItems 的位置。如果一次只拖动一个,我设置的系统会正确量化 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;
}
任何帮助将非常感激!