こんにちは、読んでいただきありがとうございます。 QGraphicsViewでマウスをドラッグしている間、複数のQGraphicsItemsの位置を正しく量子化するのに問題があります。私が設定したシステムは、複数の選択してドラッグした場合は、主要な項目(マウスの直下の項目)のみが量子化され、残りの部分は連続的に設定されていますが、QGraphicsItemを正しくドラッグするとQGraphicsItemが正しく量子化されます。私はこのことについて何か助けていただければ幸いです。関連するコードは次のとおりです。QGraphicsViewでマウスをドラッグしながら複数のQGraphicsItemの位置を量子化する方法は?
これはQGraphicsRectItemを継承するMutaEventというクラスにあります。私は(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);
}
次のビットは、牟田と呼ばれる名前空間の静的関数です:
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;
}
すべてのヘルプははるかに高く評価されるだろう!