我的问题可能非常简单,但我不知道如何解决它。
所以,我在垂直布局中有几个小部件。其中一些在某些时刻应该是看不见的。我想这一刻,扩大纵向政策的控制应该增加它的高度,但它永远不会发生。为什么?如何强制它改变大小?到目前为止,只有一种方法可以做到这一点 - 稍微改变窗口的大小,并且只有在窗口小部件改变其高度之后才会改变窗口的大小。
答案 0 :(得分:3)
当您使窗口小部件不可见(即调用hide)时,也要将其从布局中删除(请参阅removeWidget)。这样,所有其他小部件将自动调整大小以利用额外空间。由于您只隐藏窗口小部件,因此其空间仍保留在垂直布局中。
在将隐藏的窗口小部件转换回视图时,使用insertWidget来维护布局顺序。否则,addWidget会始终将其置于底部。这种方法应该比手动管理大小更简单。
答案 1 :(得分:1)
尝试在布局的父级上调用adjustSize()
。
答案 2 :(得分:0)
您是否尝试将隐藏的小部件设置为1,以便在隐藏其他小部件时将其展开?
QBoxLayout::addWidget( my_widget, 1 );
如果此窗口小部件添加了一段1而其他窗口小部件没有拉伸,则此窗口小部件将扩展到可用空间。也许这会成功。