在pyqt的layout中不止widget,每次刷新要删除部分控件,这里永乐这个函数可以删除所有控件
def deleteAll(self,thisLayout):
item_list = list(range(thisLayout.count()))
item_list.reverse() # 倒序删除,避免影响布局顺序
for i in item_list:
item = thisLayout.itemAt(i)
if item is not None:
if item.widget() is not None:
item.widget().deleteLater()
elif isinstance(item, QSpacerItem):
thisLayout.removeItem(item)
else:
self.deleteAll(item.layout())
thisLayout.removeItem(item)