我正在进行形状更改对话框。
当更多按钮被击中时,它会被放大,而当被击中时,它会被缩小。我所做的是使用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();
}
replaceBox
是QGroupBox
moreButton
是QPushButton
findDialog
是QDialog inherited class
答案 0 :(得分:1)
我用layout() -> setSizeConstraint(QLayout::SetFixedSize);
解决了所以现在小部件的大小始终设置为sizeHint()
这就是为什么布局没有像我想要的那样更新。
这种方式updateGeometry()
不需要。