QT对话框关闭并删除

时间:2014-07-18 18:20:14

标签: c++ qt

我有一个MainWindow和Type类。

MainWindow中的按钮使用以下代码向插槽发送信号:

dialog = new QDialog(this);

Ui_type typeui;
typeui.setupUi(dialog);

dialog->show();

然后显示对话框。在对话框上单击按钮时,我想关闭对话框并将其删除。

我不明白如何从对话框本身引用对话框。

任何帮助将不胜感激。感谢。

3 个答案:

答案 0 :(得分:8)

您可以在对话框中设置Qt::WA_DeleteOnClose属性。这将确保对话框在关闭时被删除。

然后在单击按钮时在对话框中调用close()方法。

dialog = new QDialog(this);

Ui_type typeui;
typeui.setupUi(dialog);

dialog->setAttribute(Qt::WA_DeleteOnClose);

dialog->show();

有关详细信息,请参阅文档:

QWidget::setAttribute ( Qt::WidgetAttribute attribute, bool on = true )

Qt::WidgetAttribute

答案 1 :(得分:4)

首先关闭按钮位于右侧的对话框窗口,然后最简单的方法是创建一个按钮,并连接close()函数以响应click()信号。 像:

Dialog::Dialog(){
   // other code
   QPushButton *closeButton = new QPushButton(tr("Close"));
    connect(closeButton, SIGNAL(clicked()), this, SLOT(close()));
   // other code
}

在Qt / examples /对话框下,项目是您问题的良好参考。看看这个。

答案 2 :(得分:1)

模态对话框获取输入的简单方法是QDialog::exec()。这可以处理您需要的一切。