我正在尝试使用形状更改对话框,即,当我单击按钮时,对话框的大小应该变得很大,并带有额外的细节。为了做到这一点,我在按钮上编写了以下代码:
QObject::connect(ui->moreButton, SIGNAL(toggled(bool)),
ui->sgroupBox, SLOT(setVisible(bool)));
但我的对话框中没有发生任何变化。在这种情况下我该怎么办
我使用hide()函数将它们放在网格中隐藏了额外的细节。额外的细节被隐藏,但小部件的大小没有改变。
请帮我解决问题
答案 0 :(得分:0)
如果我正确理解您的问题,您在点击用户界面中的按钮后会尝试调整QDialog框的大小?
由于QDialog继承自QWidget,因此您可以调用QWidget :: resize(int width,int height)方法。
现在,要按下按钮使QDialog增长,只需将切换(bool)信号连接到插槽,然后调用调整大小。
即。
QObject::connect(ui->moreButton, SIGNAL(toggled(bool)), whateverClassManagesYourQDialog, onButtonToggled(bool));
然后在管理QDialog的类中实现此插槽: 即
// 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
}