Seite 1 von 1

[gelöst] QGraphicsView fixieren

Verfasst: 17. Oktober 2008 13:11
von jerry42
Hallo zusammen,

zunächst muss ich vorausschicken, dass ich erst seit ein paar Wochen mit Qt experimentiere.

Ich habe gerade folgendes Problem:
Ich habe eine QGraphicsView mit einer GraphicsScene. Ich füge der Szene gerade zu Testzwecken einige QGraphicsRectItem-Objekte hinzu. Das klappt auch wunderbar.
Zu einem Zeitpunkt sollen sagen wir immer 3 Items angezeigt werden. Wenn ich nun die Items austauschen will, möchte ich, dass ein kleiner Effekt/Animation von statten geht.
Deshalb versuche ich per QTimeLine das Item aus dem Bild zu bewegen (per QGraphicsItem::moveBy(...)). Das Problem ist nun, dass wenn das Item den Rand des Fensters erreicht hat, sich die View noch ein Stück mitbewegt. D.h. alle anderen Items werden durch die neue Sicht etwas nach rechts verschoben.
Die View will ich aber so fixieren, dass das Item einfach hinausgeschoben wird.
Im Moment sieht mein Code folgendermaßen aus, wobei weder fixedSize(), setHorizontalScrollPolicy noch setMaximumWidth() etwas bewirkt.

Code: Alles auswählen

 
     QGraphicsView view(&scene);
     view.setFixedSize(900,400);
     view.setMaximumWidth(900);
     view.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
     view.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
     view.setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate);
     view.show();
Kann mir jemand helfen, wie ich dies bewerkstelligen kann?
Vielen Dank im Voraus.

Viele Grüße
jerry42

Verfasst: 17. Oktober 2008 18:07
von Volker
setFixedSize bewirkt in diesem Fall nicht das was Du denkst. Das bezieht sich nur auf das QGraphicsView Widget, aber nicht auf die Szene die darin dargestellt wird. Probiere lieber mal setSceneRect entweder auf dem View oder auf der Scene.

Verfasst: 20. Oktober 2008 11:54
von jerry42
Danke Dir. Das war genau das was ich gesucht hatte. :)