清除布局的最安全方法是使用其takeAt方法提取项目,然后使用deleteLater明确删除所有小部件:
def clearLayout(self, layout):
if layout is not None:
while layout.count():
item = layout.takeAt(0)
widget = item.widget()
if widget is not None:
widget.deleteLater()
else:
self.clearLayout(item.layout())