Qt 删除QScrollArea的小部件

Qt 删除QScrollArea的小部件,qt,qwidget,Qt,Qwidget,我必须更新或更改scrollArea内的小部件,具体取决于左侧的树项目选择 QWidget *scrollAreaWidget = new QWidget; scrollAreaWidget->setObjectName("ScrollAreaWidget"); QVBoxLayout *scrollLayout = new QVBoxLayout; scrollAreaWidget->setLayout(scrollLayout); forea

我必须更新或更改scrollArea内的小部件,具体取决于左侧的树项目选择

 QWidget *scrollAreaWidget = new QWidget;

    scrollAreaWidget->setObjectName("ScrollAreaWidget");

    QVBoxLayout *scrollLayout = new QVBoxLayout;
    scrollAreaWidget->setLayout(scrollLayout);
    foreach (PyInfo pInfo, list) {
        //Adding widget
        rowWidget->setObjectName(objName);
            scrollLayout->addWidget(rowWidget);

    }
    m_pScrollArea->setWidget(scrollAreaWidget);
因此,当我需要更新一个新的小部件时,我尝试清除添加到scrollArea的旧小部件,如下所示

QWidget *wid = m_pScrollArea->widget();

    if(wid)
        wid->deleteLater();

is deleteLated()调用就足够了,或者我必须显式删除我作为孩子添加到ScrollArea->widget()的所有小部件,并断开其中的信号。

是的,这应该足够了。Qt负责其余部分。从Qt文档:

父对象取得对象的所有权;i、 例如,它将自动 在其析构函数中删除其子级

当任何一个对象 所有涉及的都被摧毁了