Seite 1 von 1

Fragen zu QGraphicsPixmapItem

Verfasst: 8. Juni 2012 21:33
von Vaio
Hi,
ich habe dazu ein paar Fragen. Die 1. behandelt die Positionierung eines Item in eine QGraphicsScene.
Ich bin eigentlich davon ausgegangen das folgendes das Item verschieben würde, es tut sich aber nichts; selbst bei anderen Parametern. Das Item bleibt zentriert in der Mitte der Scene.

Code: Alles auswählen


QGraphicsPixmapItem *item = new QGraphicsPixmapItem(0,scene);
item->setPixmap(QPixmap(":/item.png"));
item->setPos(0,10);
scene->addItem(item);
Warum tut sich da nichts?? Nach dem was ich im Internet gefunden habe, sollte setPos() der gängige Weg sein.

Vaio

Re: Fragen zu QGraphicsPixmapItem

Verfasst: 9. Juni 2012 22:06
von franzf
Das liegt am sceneRect. Wenn du das item VOR dem setzen in die scene positionierst (setPos), dann ist die sceneRectanders, als wenn du erst einfügst und dann neu positionierst. Die view nimmt die sceneRect, um den Inhalt der scene auch ordentlich zu zeichnen. sceneRect enthält (wenn nicht anders gesetzt, und das solltest du lassen, wenn du nicht genau weißt, was du tust) ein Recht eck, in dem alle Items samt ihren alten Positionen rein passen.
Spiel einfach mal rum, leg Items in ne scene, beweg sie herum und lass dir immer wieder sceneRect ausgeben.