首先调用函数设置位对话框退出时自己销毁 setAttribute (Qt::WA_DeleteOnClose);//退出自动销毁
SerialDialog::SerialDialog(QWidget *parent) : QDialog(parent),parent(parent),ui(new Ui::SerialDialog)
{
ui->setupUi(this);
setAttribute (Qt::WA_DeleteOnClose);//退出自动销毁
}
然后可以在 closeEvent()函数里调用拥有该对象指针的对象中的相关函数以便让它知道已经删除了
void SerialDialog::closeEvent(QCloseEvent *event)
{
((MainWindow*)parent)->on_delete_serialDlg(this);
event->accept();
}
在相关对象里可以先判断下是否是自己的那个对象调用的
void MainWindow::on_delete_serialDlg(void *obj)
{
if(serialDlg==obj)
{
serialDlg=NULL;
}
}
如果是,则设置为NULL表示该对象已经不存在了>>>>><<<<<<