Qt - 删除窗口小部件时,布局不会缩小

时间:2015-06-17 14:13:35

标签: qt qlayout

我正在进行形状更改对话框。 当更多按钮被击中时,它会被放大,而当被击中时,它会被缩小。我所做的是使用layout() -> addWidget()layout() -> removeWidget()。当我添加一个小部件时,它会正确放大,但是当我删除它不会收缩的东西时。我尝试使用layout() -> update()layout() -> updateGeometry(),但都没有效果。

编辑** 这是我点击按钮时调用的功能。

void findDialog::small()
{
    replaceBox -> hide();
    layout() -> removeWidget(replaceBox);
    moreButton -> show();
    updateGeometry();
}
void findDialog::extended()
{
    layout() -> addWidget(replaceBox);
    replaceBox -> show();
    moreButton -> hide();
    updateGeometry();
}

replaceBoxQGroupBox

moreButtonQPushButton

findDialogQDialog inherited class

1 个答案:

答案 0 :(得分:1)

我用layout() -> setSizeConstraint(QLayout::SetFixedSize);解决了所以现在小部件的大小始终设置为sizeHint() 这就是为什么布局没有像我想要的那样更新。 这种方式updateGeometry()不需要。