Seite 1 von 1

[Gelöst] Drag & Drop zwischen GraphicsView und GraphicsS

Verfasst: 8. September 2010 09:11
von Mani99
Hi,

bei meinem programm kann man QLabels von außerhalb (groupbox neben dem QGraphicsView) per drag & drop auf das graphicsview ziehen, welche dann als QGraphicsRectItem auf dem QGraphicsView dargestelt werden soll.

Mein problem ist folgendes:

Damit drag & drop funktioniert, habe ich die ganzen events in einer eigenen klasse von QGraphicsView überschrieben. Wenn ich jetzt aber etwas auf das QGraphicsView respektive die QGraphicsScene ziehe, wird das drop event des QGraphicsView ausgelöst.

Das neue QGraphicsRectItem positioniere ich per setPos() mit der position die ich vom event parameter bekomme, jedoch wird das neue QGraphicsRectItem irgendwo anders positioniert als die maus position ist.


Testweise habe ich auch eine eigene QGraphicsScene abgeleitet und per mouse_pressed ein QGraphicsRectItem eingefügt.

Von der QGraphicsScene bekomme ich vom mouse_pressed event die koordinaten als scenePos() und das neue objekt wird richtig positioniert.

Was kann ich jetzt machen, damit im drop event von QGraphicsView auch die richtigen koordinaten bekomme?

Danke!

Verfasst: 8. September 2010 09:19
von franzf
Doku lesen und staunen :P
QGraphicsView::mapToScene() sollte das machen was du willst.

Verfasst: 8. September 2010 09:22
von Mani99
Danke!

Die mapFrom und mapTo möglichkeiten habe ich noch nicht beachtet, aber laut doku sollte das wirklich die lösung sein!

Danke nochmal!