【问题标题】:Shape changing Dialog Box形状改变对话框
【发布时间】:2012-09-19 04:44:58
【问题描述】:

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

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

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

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

请帮我解决一下

【问题讨论】:

  • 可能你的对话框不包含布局,当它们的内容出现在屏幕上时可以提供自动调整大小。

标签: qt qtgui qt-signals


【解决方案1】:

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

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

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

即。

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
}

【讨论】:

    猜你喜欢
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多