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

4

我的问题可能很简单,但我不知道该如何解决。

我有几个小部件在垂直布局中。其中一些在某一时刻应该是不可见的。我想这时控件应该增加其高度,但它从未发生过。为什么?如何强制更改大小?到目前为止,只有一种方法可以实现 - 手动略微更改窗口大小,然后小部件才会更改其高度。

3个回答

3
当您将小部件隐藏(即调用hide)时,还要从布局中删除它(请参见removeWidget)。这样,所有其他小部件都会自动调整大小以利用额外的空间。由于您只是隐藏了小部件,因此其空间仍在垂直布局中保留。
使用insertWidget来维护布局顺序,当转换隐藏的小部件回到视图中时。否则,addWidget总是将其放在底部。这种方法应该比手动管理大小更简单。

我尝试了这种方法,但它仍然不起作用。小部件消失了,但另一个小部件没有伸展开来。:( 无论如何还是谢谢。 - mimic

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

0

你尝试过将要展开的小部件的拉伸设置为1,以便在其他小部件隐藏时该小部件可以扩展吗?

QBoxLayout::addWidget( my_widget, 1 );

当将此小部件添加到一个拉伸为1的区域,而其他小部件没有拉伸时,此小部件将会扩展到可用空间。也许这就是解决问题的方法。

抱歉,我不添加这样的小部件。布局中的小部件始终具有扩展策略,但当我删除另一个具有首选策略的小部件时,它不会扩展。无论如何,谢谢。 - mimic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接