Qt “形状更改”对话框

Qt “形状更改”对话框,qt,qtgui,qt-signals,Qt,Qtgui,Qt Signals,我试着使用一个改变形状的对话框,也就是说,当我点击一个按钮时,对话框的大小会随着额外的细节而变大。为此,我在按钮上编写了以下代码: QObject::connect(ui->moreButton, SIGNAL(toggled(bool)), ui->sgroupBox, SLOT(setVisible(bool))); 但我的对话框上没有发生任何更改。在这种情况下我该怎么办 我通过使用hide()函数将额外的细节放置在网格中,从而隐藏了这些细节。额外的细节被隐藏,但小部

我试着使用一个改变形状的对话框,也就是说,当我点击一个按钮时,对话框的大小会随着额外的细节而变大。为此,我在按钮上编写了以下代码:

QObject::connect(ui->moreButton, SIGNAL(toggled(bool)), 
    ui->sgroupBox, SLOT(setVisible(bool)));
但我的对话框上没有发生任何更改。在这种情况下我该怎么办

我通过使用hide()函数将额外的细节放置在网格中,从而隐藏了这些细节。额外的细节被隐藏,但小部件的大小没有改变


请帮助我找到解决方案

如果我正确理解您的问题,您是否在单击用户界面中的按钮后尝试调整QDialog box的大小

由于QDialog继承自QWidget,因此可以调用QWidget::resize(int-width,int-height)方法

现在,要使QDialog在按下按钮时增长,只需将切换(bool)信号连接到一个插槽,然后调用resize

然后在管理QDialog的类中实现此插槽: 即


您的对话框可能不包含布局,当其内容出现在屏幕上时,布局可以自动调整大小。
QObject::connect(ui->moreButton, SIGNAL(toggled(bool)), whateverClassManagesYourQDialog, onButtonToggled(bool));
// This is a slot in your class which implements QDialog 
whateverClassManagesYourQDialog::onButtonToggled(bool toggledState){
    ui->sGroupBox.setVisible(toggledState); // This will show or hide sGroupBox
    resize(someIncrement,someIncrement); // This will grow your QDialog
}