目录

问题描述:Qt QWidget 删除之后还会显示

解决方案:

Part1:  使用 deleteLater

Part2: 使用 setParent(nullptr) 父控件为空

还有一种不常用的方法 隐藏:


问题描述:Qt QWidget 删除之后还会显示

Qt 无论使用

while (Layout->count() > 0) {
			QLayoutItem *item = Layout->takeAt(0);
			Layout->removeItem(item);
		}

还是使用:

QVBoxLayout::removeWidget(QWidget *w)

解决方案:

 经测试有以下两种方案:

Part1:  使用 deleteLater
 
widget->deleteLater();

layout->removeWidget(widget);
Part2: 使用 setParent(nullptr) 父控件为空
widget->setParent(nullptr);

layout->removeWidget(widget);
还有一种不常用的方法 隐藏:
widget->hide();