QGraphicsView

Alles rund um die Programmierung mit Qt
Antworten
jaronimo
Beiträge: 13
Registriert: 29. April 2010 19:00

QGraphicsView

Beitrag von jaronimo »

Hallo alle zusammen!

Ich bastle gerade an einem Programm, das mir einen Baum (L-System) in eine QGraphicsScene zeichnet, die dann in einem QGraphicsView angezeigt wird.

Was ich gern wissen würde: wie ich den View so skaliere/zoome, dass er mir den Baum in maximaler Größe anzeigt, ohne etwas davon abzuschneiden.

Da ich kein kein Szene Rectangle mittels
scene->setSceneRect(QRectF(0, 0, sceneWidth, sceneHeight));
angegeben habe, sollte die QGraphicsScene die min/max Ausmaße meines Baumes haben.

Ich muss also nur noch View so skalieren dass die Scene den maximalen Platz darin einnimmt, um Szenarien wie in den Screenshots zu vermeiden.

Aber wie?
Dateianhänge
zugroß.png
zugroß.png (47.19 KiB) 1976 mal betrachtet
zuklein.png
zuklein.png (32.76 KiB) 1976 mal betrachtet
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Was spricht dann gegen die Verwendung von QGraphicsView::scale?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Im resizeEvent() deines Widgets rufst du sowas auf wie

Code: Alles auswählen

view->fitInView( scene->sceneRect(), Qt::KeepAspectRatio );
// edit
Wenn du auch nach Änderungen deines Baums den vollen Baum anzeigen willst, musst du natürlich obiges auch aufrufen.
jaronimo
Beiträge: 13
Registriert: 29. April 2010 19:00

Beitrag von jaronimo »

Danke für den Tip, franzf!

Es klappt jetzt schon fast. Die Szene wird je nach Baumgröße skaliert. Aber es sieht so aus, als würde der View größer als der Bildausschnitt sein, weshalb man ihn scrollen muss. Erst wenn man das Fenster maximiert sieht man den gesamten View Bereich.

Wieso passt sich der View nicht an die tatsächliche Fenstergrösse an?

dass ich am resizeEvent() noch nix geändert habe, kanns denk ich nicht sein, weil ja der View immer unabhängig von der Baumgröße gleich weit gescrollt werden muss
Dateianhänge
exampleA.png
exampleA.png (59.97 KiB) 1965 mal betrachtet
exampleB.png
exampleB.png (56.14 KiB) 1965 mal betrachtet
fenster_im_nachhinein_vergrössert.png
fenster_im_nachhinein_vergrössert.png (58.07 KiB) 1965 mal betrachtet
Antworten