QMainWindows verkleinern möglich, trotz gefülltem QDockWindow



  • Hallo,

    in einem QMainWindow ist am unteren Bildschirmrand horizontal ein QDockWindow, in dem sich viele Eingabe-Widgets befinden, fest verankert. Bei horizontaler Verkleinerung des Hauptfensters verkleinert sich das Dockfenster mit.

    Allerdings lässt sich das Hauptfenster nur so weit verkleinern, bis im Dockfenster die Eingabe-Widgets aneinanderstoßen, was schon relativ früh nach ca. 2/3 der Hauptfenstergröße eintritt.

    Wie lässt es sich erreichen, dass das Hauptfenster trotzdem weiter verkleinert werden kann und Teile des Dockfensters dann einfach aus der Sichtbarkeit verschwinden?

    Oder falls nicht anders möglich, dass Dockfenster immer maximiert bleibt und das Hauptfenstergröße sich vollständig horizontal verkleinern lässt, ohne Rücksicht auf das Dockfenster zu nehmen?

    Ich arbeite mit dem Qt Designer und habe dort schon versucht alle möglichen Parameter des QMainWindow und des QDockWindow ohne Erfolg zu verändern. Weiß jemand wie sich das gewünschte Verhalten erreichen lässt?

    Grüße,
    Bernd



  • Du könntest eine QScrollArea verwenden und deine Eingabewidgets da reinstecken.
    Grundsätzlich ist alles möglich 😉 Du kannst auch eigene Layouts schreiben.



  • Hallo Mechanics,

    danke für den Hinweis auf QScrollArea. In dem Programm soll das Dockfenster jedoch eine ganz geringe Höhe haben, weshalb für Scrollbalken keinen Platz ist.

    Da ich Qt Anfänger bin, ist die Lösung vermutlich ganz einfach, da ich die Funktion der vielen Qt Einstellungsparameter noch nicht überblicke.

    Mittlerweile habe ich das Problem etwas weiter eingrenzen können:

    1. Wenn in einem leeren QDockfenster nur ein QPushButton mit fester "minimumSize Breite" von beispielsweise 800 angebracht wird, dann lässt sich das Hauptfenster problemlos vom User mit der Maus bis zu einer Breite von ca. 50 Pixeln verkleinern.

    2. Wird dem Dockfenster dann jedoch zusätzlich noch ein horizontales Layout zugewiesen (was in meinem vollständigen Programm so vorliegt), dann lässt sich das Hauptfenster nur noch maximal auf eine Größe von ca. 850 Pixel verkleinern, sodass der QPushButton vollständig sichtbar bleibt.

    Die Frage ist also, wie dem Hauptfenster mitgeteilt werden kann, das Layout im Dockfenster zu ignorieren, so dass es sich weiterhin vom User mit der Maus auf maximal ca. 50 Pixel verkleinern lässt?

    Ich hatte gehofft, dass das vielleicht über "Size Policy" möglich ist. Weshalb ich die "Size Policy" von QMainWindow, centralWidget, QDockWindow, DockWindow Content und von QPushButton alle einmal auf "Ignored" gestellt habe, leider ohne Erfolg 😞

    Gibt es irgendeinen anderen Parameter, der das möglich macht? Oder muss vielleicht QDockWindow dazu auf eine bestimmte Weise abgeleitet werden?


Log in to reply