Ich verwende Qlabels, um einige Grafiken und Bilder (über setpixmap) zu plotten.QT-Layout-Manager stellt keinen Speicherplatz wieder her, wenn das Widget ausgeblendet wird, bis das Fenster verschoben wird
Mein Grundlayout ist:
QVBoxLayout Haupt Layout über QDialog des setLayout. QHBoxLayout (Array von QLabels) QLabel expandedPlot (optional erweitert Grundstück von einem der oben QLabels) QLabel Mainimage Hauptbildanzeige
Innerhalb der QDialogs keypress Event-Handler erneut implementiert, ich verstecke()/show() die erweiterte Handlung. Wenn ich den expandedPlot verberge(), stellt der Layoutmanager etwa die Hälfte der vertikalen Nutzung wieder her. Wenn ich dann das Fenster ziehe, stellt der Layout-Manager den Rest des vertikalen Raums wieder her (als ob kein Gegenstand vorhanden wäre).
Wie kann ich das Verhalten des Verschiebens des Fensters erzwingen? Ich möchte, dass der Layoutmanager den vertikalen Platz vollständig wiederherstellt.
Ich benutze Qt 5.6 auf Windows, aber wollen plattformübergreifende Lösungen. Vielen Dank, Mike
Rufen Sie 'updateGeometry' auf dem versteckten Widget auf? Eine eingeschränkte Version Ihres Codes, die das Problem zeigt, würde diese Frage verbessern. – strubbly
Nein - sieht aus wie 'updateGeometry' ist in diesem Fall ein No-Op. Probieren Sie "adjustSize" für das übergeordnete Element aus. – strubbly
Hallo Strubbly, Danke. Das hat perfekt funktioniert. –