1

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

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

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

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

请帮我解决

4

1 回答 1

0

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

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

所以现在,要让 QDialog 在您按下按钮时增长,您只需将 toggled(bool) 信号连接到一个插槽,然后调用调整大小。

IE。

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
}
于 2012-09-19T06:20:05.840 回答