2012-09-19 75 views
1

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

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 
}