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

时间:2016-03-20 09:13:45

标签: qt

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

我的基本布局是:

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

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

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

我在Windows上使用Qt 5.6,但想要跨平台解决方案。 谢谢,迈克

1 个答案:

答案 0 :(得分:0)

因为布置小部件非常昂贵,所以Qt并不总是如此。如果更改随附小部件的大小,则可能需要在其上调用updateGeometry以触发随附的布局管理器重新布局。但是如果隐藏窗口小部件,updateGeometry什么都不做。在这种情况下,您需要在父窗口小部件上调用adjustSize,然后触发重新布局。