QGraphicsView an Fenstergröße anpassen

Alles rund um die Programmierung mit Qt
Antworten
Herras
Beiträge: 10
Registriert: 31. März 2010 21:10

QGraphicsView an Fenstergröße anpassen

Beitrag von Herras »

Hallo zusammen!
Ich habe mal wieder eine Frage. Zuerst mal die Umstände:
Ich habe ein Fenster, das enthält einige Widgets und ein QGraphicsView. Dabei hat das Fenster eine minimale Größe, die maximale Größe ist nicht festgelegt. Erfolgt ein resize() (also ein ziehen am Fensterrahmen), so soll sich nur das QGraphicsView an die neue Fenstergröße anpassen.

Meine Frage: um das anpassen der QGraphicsView-Größe vorzunehmen, muss ich hierzu die resizeEvent() Methode des Fenster redefinieren? Innerhalb dieser Methode dann QGraphicsView->setSize(x, y) aufrufen? Konnte diesbezüglich nichts im Netz finden...

Gruß Herras
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Verwende ein Layout, das managed das automatische resizen der darin liegenden Widgets.
Wenn du einzelne Widgets minimal/maximal halten willst, spiel (am besten direkt mal im Designer) mit den ganzen sizeHint-Sachen rum.
Herras
Beiträge: 10
Registriert: 31. März 2010 21:10

Beitrag von Herras »

Hallo franzf, ich habe es schon mal mit Layouts versucht. Leider sollen einige Widgets statisch bleiben, daher wollte ich es ohne Layouts probieren.
Wie "verbinde" ich eigentlich ein Layout mit dem Fenster, so dass es sich an dessen größe anpasst? Im Designer klappt das nicht so wirklich...

Gruß Herras
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Zieh die Widgets im Designer auf das Widgets, in dem sie ausgerichtet werden sollen. Wenn du alle Widgets in ein Layout packen willst, reciht es, wenn du auf dem Widget mit rechts klickst -> Lay out -> Layout auswählen.
Wenn du verschiedene Gruppen in dem Layout haben willst (Also z.B. links ne Gruppe PushButtons vertikal ausgerichtet, daneben ein TextEdit, usw) markierst du die Widgets die in ein eigenes Layout sollen und klcikst auf eines rechts -> Layout -> Layout wählen.
Herras
Beiträge: 10
Registriert: 31. März 2010 21:10

Beitrag von Herras »

Hallo franzf, danke dir vielmals. Leider bekomme ich es nicht hin, dass ein teil des Layouts statisch bleibt, während sich das GraphicsView in der Größe ändern darf. Werde noch etwas mehr ausprobieren müssen denke ich...

Merci!
Gruß
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

QWidgets haben ne ganze menge "Properties", das sie in einem layout korrekt mitspielen koennen.
sie geben dem lyout zum beispiel ihre min groesse, max groesse, bevorzugte groesse und auch paar andere einstellungen fuers verhalten beim anpassen der groesse im layout. Die meisten kann man komfortabel im Designer einstellen.
Schau mal nach :
sizePolicy,sizeIncrement,sizeHint
das gilt aber nur, wenn das layout die fenster gleichberechtigt behandelt.
Am layout (QBoxLayout und ableitungen) kannst du mit stretch das verhalten quasi euberschreiben ... und selber festlegen, in welchen verhaeltniss sich welches segment veraendert. (geht auch am designer)

setz mal fuer ein segment den stretch auf 0 die anderen auf 1 !

Ciao ...
Herras
Beiträge: 10
Registriert: 31. März 2010 21:10

Beitrag von Herras »

Ja jetzt hat es geklappt :). Eigentlich gar nicht so schwer, wenn man weiß an welchen Schrauben man drehen muss!

Danke für die Hilfe, das hat mich sehr weitergebracht!

Gruß Herras
Antworten