我有一个MainWindow和Type类。
MainWindow中的按钮使用以下代码向插槽发送信号:
dialog = new QDialog(this);
Ui_type typeui;
typeui.setupUi(dialog);
dialog->show();
然后显示对话框。在对话框上单击按钮时,我想关闭对话框并将其删除。
我不明白如何从对话框本身引用对话框。
任何帮助将不胜感激。感谢。
答案 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 )
答案 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()
。这可以处理您需要的一切。