当内容部分隐藏时,在运行时调整包含QVBoxLayout的QWidget的大小

时间:2012-07-31 18:49:27

标签: qt dynamic resize runtime qwidget

在此应用程序中,生成HBoxLayouts列表并将其放入VBoxLayout以形成动态填充的命令列表。每个子列表上方都有一个按钮,可以隐藏它下面的控件。问题:当隐藏子列表时,包含最广泛的VBoxLayout的小部件的大小不会改变!然后VBoxLayout伸展以进行补偿。我希望容器小部件在包含较少的项目时收缩!  它看起来像这样:

问题是,当我在其中一个PushButtons下隐藏列表时,包含的小部件不会缩小!当可见项较少时,VBoxLayout会扩展:(

这是我如何看到我的小GUI的图片。

以下是更广泛的布局设置中的一些代码:

scrollArea = new QScrollArea(this);
scrollAreaLayoutWidget = new QWidget(scrollArea);
scrollAreaLayout = new QVBoxLayout(scrollAreaLayoutWidget);
//scrollAreaLayout is filled with all the stuff you see inside the scroll area...
scrollArea->setWidget(scrollAreaLayoutWidget);

我尝试过多种方式更改容器小部件(蓝框)的QSizePolicy。我已经找到了几十个调整大小的问题,但我还是没有找到答案。我缺少一个神奇的自动调整大小设置吗? 如果这是痛苦的模糊或不完整,请告诉我。 欢迎任何评论!

1 个答案:

答案 0 :(得分:0)

事实证明,我所要做的就是创建一个自定义SLOT,以便在单击隐藏部分Ui的按钮时隐藏该功能中的相关小部件。在同一个函数中,我调用了[containerWidget]->adjustSize();,它完全符合我的要求。