如何让Qt小部件改变其大小?

问题描述:

我的问题可能很简单,但我不知道如何解决它。如何让Qt小部件改变其大小?

因此,我有几个垂直布局的小部件。有些时候应该是隐形的。我认为这一时刻,扩大垂直政策的控制力应该增加其高度,但从未发生。为什么?如何强制它改变大小?到目前为止,只有一种方法可以实现 - 手动更改窗口的大小,并且只有在窗口小部件更改高度后才能更改窗口的大小。

当您使小部件不可见(即调用hide)时,也可以从布局中将其删除(请参阅removeWidget)。这样,所有其他小部件将自动调整大小以利用额外的空间。由于您只隐藏小部件,因此其空间仍保留在垂直布局中。

利用insertWidget可以在将隐藏小部件转换回视图时维持布局排序。否则,addWidget将始终将其置于底部。这种方法应该不如手动管理尺寸那么复杂。

+0

我试过这种方式,但它仍然不起作用。小部件消失,但另一个小部件不能延伸。 (谢谢) – mimic 2011-05-23 06:03:03

尝试在布局的父级上调用adjustSize()

+0

试过了,不起作用,无论如何感谢 – mimic 2011-05-24 03:20:45

您是否尝试过在其他人隐藏的时候为其想要展开的小部件设置1?

QBoxLayout::addWidget(my_widget, 1); 

当这个小部件增加了一段1和其他小部件没有拉伸时,这个小部件将扩展到可用空间。也许这会做到这一点。

+0

很抱歉,我没有添加这样的小部件,在布局中的小部件总是有扩展策略,但是当我删除另一个时首选政策)。无论如何,谢谢 – mimic 2011-05-24 03:20:07