Qt 删除QScrollArea的小部件
我必须更新或更改scrollArea内的小部件,具体取决于左侧的树项目选择Qt 删除QScrollArea的小部件,qt,qwidget,Qt,Qwidget,我必须更新或更改scrollArea内的小部件,具体取决于左侧的树项目选择 QWidget *scrollAreaWidget = new QWidget; scrollAreaWidget->setObjectName("ScrollAreaWidget"); QVBoxLayout *scrollLayout = new QVBoxLayout; scrollAreaWidget->setLayout(scrollLayout); forea
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、 例如,它将自动 在其析构函数中删除其子级 当任何一个对象 所有涉及的都被摧毁了