2016-12-19 8 views
0

ich folgende Setup zu haben bin versucht:Qt 5.7 QDockWidget Standardgröße

beim Start (wenn Hauptfenster geöffnet ist) I 2 QDockWidgets mit Breite 400px und Höhe 1/2 (jeweils) von QMainWindows auf der linken Seite haben wollen Höhe. Auf der linken Seite, 3 QDockWidgets mit einer Breite von 400px und einer Höhe von jeweils 1/3 von QMainWindows height. Alle 5 Widgets müssen in der Größe veränderbar sein. Das bedeutet, dass die Verwendung von setFixSize() in diesem Fall nicht funktioniert.

Bisher habe ich versucht, Geometry>Width und Gemetry>Height in entworfen geändert -> hat nicht funktioniert.

Dann habe ich versucht, resize() im Hauptfenster Konstruktor, aber es hat auch nicht funktioniert.

Warum haben Gemetry>Height/Width und resize() keinen Einfluss auf die Größe der Widgets und wie das Hauptfenster-Layout wie oben beschrieben erreicht wird?

Antwort

0

Die Dock-Widgets werden dem Layout des Hauptfensters hinzugefügt, so dass ihre Größenänderung keine Auswirkungen hat. Eine Umgehung dafür besteht darin, das sizeHint des Inhaltswidgets neu zu implementieren, das jedem Dock-Widget hinzugefügt wird.

Ich denke, eine andere Möglichkeit, dies zu betrachten, ist es, den Benutzer die Dock-Widgets auf beliebige Weise anordnen zu lassen und dann saveState und restoreState zu verwenden, um den Anfangszustand zu verwalten.

+0

Und wenn der Inhalt eines Docking-Widgets ist, z. B. 'QWebEngineView'? Ich glaube nicht, dass ich davon erben muss, um "sizeHint" neu zu implementieren. Ist das eine gute Idee, oder nicht? – carobnodrvo

+0

@carobnodrvo. Verwenden Sie einfach eine einfache 'QWidget'-Unterklasse als Container für Ihren echten Inhalt. – ekhumoro

+0

Aber mein echter Inhalt ist 'QWebEngineView'. – carobnodrvo

Verwandte Themen