gpt4 book ai didi

qt - 无法在 QVBoxLayout 中调整小部件的大小

转载 作者:行者123 更新时间:2023-12-01 22:42:17 29 4
gpt4 key购买 nike

我有一个带有 QVBoxLayout 的容器小部件。

我在 VBoxLayout 中添加了大约 100 个小部件。他们都有相同的高度。在某些时候,需要调整其中一行的大小。我调整(newWidth,newHeight)小部件的大小并在 QVBoxLayout 上调用 layout(),但没有任何变化。大小保持不变。

如何在 QVBoxLayout 中动态改变控件的高度?

最佳答案

根据设计,调整插入到布局中的小部件的大小是空操作。布局调整小部件的大小,而不是你。

如果你想在 QVBoxLayout 中使用固定高度的小部件,你必须设置小部件的最小和最大高度,并确保它的 sizePolicy 在垂直方向上不被忽略。

如果您想要一个高度是所有其他小部件两倍的小部件。将其拉伸(stretch)设置为 2,将其他小部件的拉伸(stretch)设置为 1。调用 layout->setStretch(index, stretch)。小部件将按比例分配给它们的宽度。例如,所有拉伸(stretch)为 1,一次拉伸(stretch)为 2,拉伸(stretch)为 2 的小部件将获得两倍的空间。

在其他条件相同的情况下(这很重要!),拉伸(stretch)与小部件的像素大小成正比。如果您愿意,假设所有小部件都为 20 像素高,但有一个小部件为 30 像素高,只需像这样设置它们的拉伸(stretch)。

如果布局具有精确的高度,以便所有小部件高度 + 间距 + 边距的总和加起来等于布局高度,则布局中的小部件将得到 height=stretch 。相反,如果您从布局高度开始,减去顶部和底部边距以及 (widget count - 1)*spacing,您将为小部件留下高度。然后,您可以通过将拉伸(stretch)设置为所需高度来手动在小部件之间分配该高度。

如果默认情况下它们太大,您可能需要覆盖小部件的 sizePolicy

关于qt - 无法在 QVBoxLayout 中调整小部件的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11000083/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com