【问题标题】:Remove space on removing qt widget删除 qt 小部件时的空间
【发布时间】:2018-03-30 21:58:27
【问题描述】:

我有一个网格布局,上面有 4 个组框。当我尝试使用groupBox->hide() 隐藏其中一个 QGroupBox 时,组框不再可见。但是布局中保留了空间(我使用QSizePolicy保留空间)

如何确保剩余小部件自动使用空间?

在图片中,我隐藏了“第 2 组”。我希望第 3 组自动填满空间。我该怎么做?

【问题讨论】:

  • 您希望 Group 3 移动到顶部位置,但在此之前有 2 种情况,第一种是更新小部件的大小,第二种是保留空间。你要哪一个?
  • @eyllanesc 我想更新小部件的大小(不留任何空间)
  • 你用过setAlignment(Qt::AlignTop);
  • 至少在 Qt 4.x 中我知道这个问题,但是在 Qt 5 中它似乎按预期工作。你能告诉我们你的对象树吗?
  • 您在中间或最大高度属性之间有任何间隔吗?为什么你使用网格框而不是垂直框?

标签: c++ qt qt4


【解决方案1】:

为了让布局做你想做的事,它的子小部件必须“表现”正确。 IE。如果您的组框之一包含垂直间隔,它可能会弄乱您的布局。

我发现将样式表设置为顶级小部件有助于调试布局问题:

pWidget->setStyleSheet("border: 1px solid red;");

这将在(某些)小部件周围绘制一个红色边框,并明确谁使用哪个空间。

您可以尝试在第三个组框下方添加一个垂直间隔,以将它们全部向上“推”。如果其中一个组合框随后设置为不可见,则其他组合框应向上推,组合框 1 和 3 之间的空间应消失。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 2019-05-05
    相关资源
    最近更新 更多