Seite 1 von 1

Koordinate eines Items berechnen

Verfasst: 30. August 2010 12:01
von anno1988
Hallo,

ich will ein item aus einem Parent Item heraus lösen.

Dazu setze ich einfach setParentItem(0);

Beide Objekte, parent und die Scene haben ja unterschiedliche Koordinatensysteme.
Aber wie bekomme ich die koordinate heraus, an die ich ein Item platzieren muss, nachdem ich es von dem Parent-item losgelöst habe?

ich habe schon folgendes versucht, allerdings verschiebt sich das item da immer.

Code: Alles auswählen


QGraphicsRectItem *rect;

point_item = rect->mapFromScene(
rect.boundingRect.x()+rect.pos().x(),
rect.boundingRect.y()+rect.pos().y());

rect.setParentItem(0);


rect.setRect(point_item.x(), point_item.y(),

hat da jeamnd eine idee wie das genau geht?

Verfasst: 30. August 2010 12:13
von kater

Code: Alles auswählen

QGraphicsRectItem *rect; 
*rect ist doch ein Pointer. Du benutzt ihn in der nächsten Zeile gleich ohne ihn irgendwie zu initialisieren. Nehme einfach mal stark an, du hast den Code einfach nicht gepostet.

Und dann nimmst du überall den Punkt-Operator z.b. rect.setParentItem(0); statt den Pfeil ->
oder du mischst es.

Der Code compiliert doch so garnicht.

Verfasst: 30. August 2010 12:28
von anno1988
kater hat geschrieben:

Code: Alles auswählen

QGraphicsRectItem *rect; 
*rect ist doch ein Pointer. Du benutzt ihn in der nächsten Zeile gleich ohne ihn irgendwie zu initialisieren. Nehme einfach mal stark an, du hast den Code einfach nicht gepostet.

Und dann nimmst du überall den Punkt-Operator z.b. rect.setParentItem(0); statt den Pfeil ->
oder du mischst es.

Der Code compiliert doch so garnicht.
richtig, ist ein Schreibfehler von mir gewesen:

Code: Alles auswählen



QGraphicsRectItem *rect;

rect = new QGraphicsRectItem();

point_item = rect->mapFromScene(
rect->boundingRect.x()+rect.pos().x(),
rect->boundingRect.y()+rect.pos().y());

rect->setParentItem(0);

rect->setRect(
point_item.x(), point_item.y(),
rect->boundingRect().width(),
rect->boundingRect().height());



Verfasst: 30. August 2010 12:41
von Nvidia

Verfasst: 30. August 2010 13:06
von anno1988
Ja, die hatte ich mir schon angeschaut. wobei das maptoGlobal ganz gut aussieht.

Allerdings bekomme ich von einem QGraphicsitem nirgend ein "QWidget" zurück geliefert.

Das einzige was ich gefunden habe ist das hier:

http://doc.trolltech.com/4.6/qgraphicsi ... rentWidget

diese Methode gibt allerdings ein QGraphicsWidget ud nicht ein QWidget zurück.

Verfasst: 30. August 2010 13:46
von Nvidia
ok das wird nicht gehen, weil nichts von QWidget erbt.
aber QGraphicsItem hat doch auch genug map funktionen
probiers doch mal mit mapToScene