形状改变对话框

时间:2012-09-19 04:44:58

标签: qt qtgui qt-signals

我正在尝试使用形状更改对话框,即,当我单击按钮时,对话框的大小应该变得很大,并带有额外的细节。为了做到这一点,我在按钮上编写了以下代码:

QObject::connect(ui->moreButton, SIGNAL(toggled(bool)), 
    ui->sgroupBox, SLOT(setVisible(bool)));

但我的对话框中没有发生任何变化。在这种情况下我该怎么办

我使用hide()函数将它们放在网格中隐藏了额外的细节。额外的细节被隐藏,但小部件的大小没有改变。

请帮我解决问题

1 个答案:

答案 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
}