【问题标题】:Hiding a widget in qlayout在 qlayout 中隐藏小部件
【发布时间】:2012-03-14 12:12:59
【问题描述】:

我正在使用 QHBoxLayout 来显示 5 个水平对齐的小部件。

如果我隐藏和显示一个小部件,它会调整大小。如何防止这种情况发生?

【问题讨论】:

    标签: c++ layout qt4


    【解决方案1】:

    你不能。如果您隐藏一个小部件,它就会从屏幕上消失,其他所有内容都将调整大小/重新排序以尽可能适合可用空间。

    但是,您可以用间距替换小部件,参见。 QBoxLayout::addSpacingQBoxLayout::addSpacerItem 设置为您隐藏的小部件的宽度。

    【讨论】:

    • 我记得我在某个地方读到过类似的东西,但现在找不到了。你知道它在哪里说在布局中不应该隐藏小部件吗?
    • @VJovic:抱歉,我手头没有报价。这就是我的做法。此外,您可能可以利用 QGridLayout,它具有 setColumnMinimumWidth() 函数,但我不确定。
    • 查看我的答案,其中我展示了如何隐藏小部件,同时在布局中保留空白空间。它不需要插入任何临时布局项。 stackoverflow.com/questions/10794532/…