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



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

问题是,当我在其中一个按钮下隐藏列表时,包含的小部件不会收缩!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。我发现了几十个调整大小的问题,但不知怎么的,我还没有找到答案。有没有我缺少的神奇的自动调整大小设置?让我知道这是令人痛苦的模糊还是不完整。欢迎任何评论!

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

最新更新