我的问题可能很简单,但我不知道该如何解决。 我有几个小部件在垂直布局中。其中一些在某一时刻应该是不可见的。我想这时控件应该增加其高度,但它从未发生过。为什么?如何强制更改大小?到目前为止,只有一种方法可以实现 - 手动略微更改窗口大小,然后小部件才会更改其高度。
当您将小部件隐藏(即调用hide)时,还要从布局中删除它(请参见removeWidget)。这样,所有其他小部件都会自动调整大小以利用额外的空间。由于您只是隐藏了小部件,因此其空间仍在垂直布局中保留。使用insertWidget来维护布局顺序,当转换隐藏的小部件回到视图中时。否则,addWidget总是将其放在底部。这种方法应该比手动管理大小更简单。
你尝试过将要展开的小部件的拉伸设置为1,以便在其他小部件隐藏时该小部件可以扩展吗? QBoxLayout::addWidget( my_widget, 1 ); 当将此小部件添加到一个拉伸为1的区域,而其他小部件没有拉伸时,此小部件将会扩展到可用空间。也许这就是解决问题的方法。