隐藏窗口小部件时,QT布局管理器在移动窗口之前不会恢复空间

隐藏窗口小部件时,QT布局管理器在移动窗口之前不会恢复空间,qt,Qt,我正在使用Qlabels绘制一些图形和图像(通过setpixmap) 我的基本布局是: QVBoxlayout通过qdialog的setlayout主布局。 QHboxlayout(QLabel数组) Qlabel expandedPlot(上述Qlabel之一的可选扩展图) QLabel主图像主图像显示 在QDialogs重新实现的按键事件处理程序中,我隐藏了展开的绘图()。当我隐藏expandedPlot()时,layoutmanager恢复了大约1/2的垂直使用率。然后,当我拖动窗口时,布

我正在使用Qlabels绘制一些图形和图像(通过setpixmap)

我的基本布局是:

QVBoxlayout通过qdialog的setlayout主布局。 QHboxlayout(QLabel数组) Qlabel expandedPlot(上述Qlabel之一的可选扩展图) QLabel主图像主图像显示

在QDialogs重新实现的按键事件处理程序中,我隐藏了展开的绘图()。当我隐藏expandedPlot()时,layoutmanager恢复了大约1/2的垂直使用率。然后,当我拖动窗口时,布局管理器会恢复垂直空间的剩余部分(就好像没有项目存在一样)

如何强制执行移动窗口的行为?我希望布局管理器完全恢复垂直空间

我在windows上使用Qt5.6,但需要跨平台解决方案。
谢谢你,mike

因为布置小部件非常昂贵,Qt并不总是这样做。如果更改封闭窗口小部件的大小,可能需要对其调用
updateGeometry
,以触发封闭布局管理器重新布局。但是,如果隐藏小部件,
updateGeometry
将不起任何作用。在这种情况下,您需要在父窗口小部件上调用
adjustSize
,这将触发重新布局。

是否在隐藏窗口小部件上调用
updateGeometry
?显示问题的代码的精简版本将改善此问题。否-在这种情况下,
updateGeometry
似乎是不可行的。请在家长电脑上尝试调整大小。你好,Strubbly,谢谢。这非常有效。