C++ QtContainer中QStackedWidget中的双重删除

C++ QtContainer中QStackedWidget中的双重删除,c++,qt,C++,Qt,我的表单中有一个QStackedWidget,我正在动态添加某些Widget m_lineEdit = new QLineEdit(); m_label = new QLabel(); m_lineEdit->setText(name()); m_label->setText(name()); innerUi->stackedWidget->addWidget(m_lineEdit); innerUi->stacked

我的表单中有一个QStackedWidget,我正在动态添加某些Widget

    m_lineEdit = new QLineEdit();
    m_label = new QLabel();
    m_lineEdit->setText(name());
    m_label->setText(name());
    innerUi->stackedWidget->addWidget(m_lineEdit);
    innerUi->stackedWidget->addWidget(m_label);
    connect(m_lineEdit, &QLineEdit::editingFinished, [this]() {
        m_label->setText(m_lineEdit->text());
        innerUi->stackedWidget->setCurrentWidget(m_label);
    });
    innerUi->stackedWidget->setCurrentWidget(m_label);
当我使用它时,它工作得很好。但当我关闭应用程序时,它崩溃了

我试图调查这个问题,并观察到以下几点。stackedwidget的父级存储在QVector中。有时我会动态地从QVector中删除元素

m_tasks.removeOne(task); 
mainUi->tasksLayout->removeWidget(task);
task->setParent(nullptr); 
mainUi->statusLabel->setText(getCompleteStatus());
delete task;
因此,这会导致双重删除。有人能给我建议如何解决这个问题吗?

尝试使用而不是
删除。您正确地将parent设置为null,这意味着默认Qt机制不应删除您的对象,但它仍可能由未删除的信号/插槽连接调用