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

Alles rund um die Programmierung mit Qt
Antworten
Mani99
Beiträge: 244
Registriert: 15. April 2009 10:46
Wohnort: München

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

Beitrag 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!
Zuletzt geändert von Mani99 am 8. September 2010 09:22, insgesamt 1-mal geändert.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Doku lesen und staunen :P
QGraphicsView::mapToScene() sollte das machen was du willst.
Mani99
Beiträge: 244
Registriert: 15. April 2009 10:46
Wohnort: München

Beitrag 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!
Antworten