我有Main Dialog,它有一些按钮。每个按钮将生成一个独立的对话框,如下所示:
void MainDialog::onAButtonClicked()
{
Dialog *dial = new Dialog(pass some parameters);
dial->show();
}
此方法的问题是当用户关闭主对话框时,未关闭正在运行的独立对话框。我不希望这个问题发生。有些解决方案建议覆盖closeEvent
和reject
,我已尝试过但这些要求我创建*dial
作为主对话的成员数据。这有效,但我不想要这种方法,因为我需要在用户完全关闭窗口后删除此对话框。我尝试使用new
分配一些内存并删除close
或reject
个事件上的对象,但应用程序挂起。解决这个问题的正确方法是什么?
答案 0 :(得分:3)
connect(this,SIGNAL(finished(int)),dial,SLOT(close()));
或
connect(this,SIGNAL(rejected()),dial,SLOT(close()));