擅长:python、mysql、java
<p>作为一般答案:<a href="https://riverbankcomputing.com/pipermail/pyqt/2009-November/025214.html" rel="nofollow noreferrer">taken from here</a>有轻微但重要的更改:不应该调用widget.deleteLater()。至少在我的例子中,这导致了python崩溃</p>
<p><strong>全局函数</strong></p>
<pre><code>def deleteItemsOfLayout(layout):
if layout is not None:
while layout.count():
item = layout.takeAt(0)
widget = item.widget()
if widget is not None:
widget.setParent(None)
else:
deleteItemsOfLayout(item.layout())
</code></pre>
<p><strong>与<a href="https://stackoverflow.com/a/37575246/3882423">Brendan Abel's</a>应答中的boxdelete函数一起</p>
<pre><code>def boxdelete(self, box):
for i in range(self.vlayout.count()):
layout_item = self.vlayout.itemAt(i)
if layout_item.layout() == box:
deleteItemsOfLayout(layout_item.layout())
self.vlayout.removeItem(layout_item)
break
</code></pre>