[gelöst] QMainWindow nach ausdocken von QDockWidget möglichs

Alles rund um die Programmierung mit Qt
Antworten
diju
Beiträge: 8
Registriert: 28. Juni 2007 16:44

[gelöst] QMainWindow nach ausdocken von QDockWidget möglichs

Beitrag von diju »

Hallo!

Ich habe da ein kleine Schönheitsfehler in meinem Programm.
Darin können QwtPlots als ein QDockWidget in das QMainWindows ein und ausgedockt werden. Das funktioniert soweit auch wunderbar...
Jedoch ändert das QMainWindow logischerweise beim eindocken seine Größe und beim wieder ausdocken nicht.

Jetzt die Frage: Wie bekomme ich das QMainWindow nach dem ausdocken wieder auf eine optimale Größe?

Hab schon so einiges im MainWindow ausprobiert:

resize(sizeHint());
centralWidget()->setSize(centralWidget()->sizeHind));
update();
updateGeometry();

aber nichts hat den gewünschten Effekt gebracht!

Wäre echt Klasse wenn mir jemand dabei helfen könnte !

Vielen Dank und viele Grüße

DiJu
Zuletzt geändert von diju am 30. August 2007 13:50, insgesamt 1-mal geändert.
diju
Beiträge: 8
Registriert: 28. Juni 2007 16:44

Problem unklar???

Beitrag von diju »

Hat jemand mein Problem verstanden und/ oder das gleiche Problem???
Volker
Beiträge: 343
Registriert: 30. Juni 2005 05:27

Beitrag von Volker »

Evtl. gibt's noch ne bessere Möglichkeit, aber evtl. hilfts dir ja die saveGeometry und restoreGeometry Funktion zu verwenden

http://doc.trolltech.com/4.3/qwidget.html#saveGeometry

zusammen mit dem dockLocationChanged Signal von QDockWidget
Bitte seid so nett und ändert den Titel von Beiträgen die gelöst wurden, auf [gelöst] Beitragstitel
diju
Beiträge: 8
Registriert: 28. Juni 2007 16:44

[gelöst] paintEvent abfangen

Beitrag von diju »

Hab das Problem erstmal provisorisch gelöst, indem ich das paintEvent abgefangen und dort adjustSize() aufgerufen habe.
Dies wirft zwar ein neues Problem auf, das man das Fenster nicht maximieren kann.
Aber das find ich jetzt nicht so tragisch, zumindest in meinem Fall.

Ich werde aber auch noch mal die Methode mit dem Geometry abspeichern ausprobieren.

Vielen Dank erstmal
Antworten