1

我正在处理形状更改对话框。当点击更多按钮时,它应该放大,再次点击时缩小。我所做的是使用layout() -> addWidget()and layout() -> removeWidget()。当我添加一个小部件时它会正确放大,但当我删除一些东西时它不会缩小。我尝试使用layout() -> update()and layout() -> updateGeometry(),但它们都不起作用。

编辑** 这是单击按钮时我调用的函数。

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

replaceBox是一个QGroupBox

moreButton是一个QPushButton

findDialog是一个QDialog inherited class

4

1 回答 1

2

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

于 2015-06-17T22:40:35.793 回答