在我的项目中,我有一个组框,其中包含一些可能需要隐藏的元素,以及上方和下方的其他元素。如果我用 setHidden(true) 隐藏这些元素,这些元素会被隐藏,但会在其他元素之间留下很大的空间。
隐藏这些元素后如何压缩组合框,所以没有这么大的空间?
原因不在 invalidate() 中。这是因为您对 GroupBox 内容的布局不正确。如果你 hide() 或 show() 任何 QWidget QT 会自动使直到最顶层父级的所有内容都无效,这可能会受到可见性变化的影响。因此,在您的情况下,QGroupBox 缺少布局,因此您隐藏元素,QGroupBox 几何形状没有任何改变,这就是您看不到预期拉伸的原因。
没有代码,有点难以猜测,缺少什么。
您是否尝试过QLayout::invalidate()
隐藏框后保持组框的布局?