Ich habe solchen Code, um neue Vertex unter Mauszeiger zu zeichnen.Kann kein neues Objekt in QGraphicsScene genau unter dem Mauszeiger zeichnen
void DiaScene::mouseReleaseEvent(QGraphicsSceneMouseEvent * me)
{
qDebug() << Q_FUNC_INFO << me->scenePos();
if (this->cursorState == VERTEX)
{
Vertex * v = new Vertex(1,1);
vertexes.append(v);
this->addItem(v);
qDebug() << me->pos();
v->setPos(me->scenePos());
qDebug() << me->scenePos();
}
}
Beim Laufen, ich mehrmals an der gleichen Stelle klicken, aber qDebug zeigt verschiedene QPointF und zieht neues Element nicht unter dem Cursor. Ich verstehe, warum ich-> ScenePos() ändert. Warum aber zeichnet die Szene keinen neuen Vertex unter dem Cursor?
Erstens zeichnet es neues Element einige weit vom Cursor. Mit jedem weiteren Klick auf den gleichen Ort wird die Position des neu gezeichneten Gegenstandes näher zum Cursor.
Das ist es. Vielen Dank. – user3003873