擅长:python、mysql、java
<p><a href="http://qt-project.org/doc/qt-4.8/qobject.html#deleteLater" rel="nofollow">deleteLater</a>槽只会安排删除对象。也就是说,直到控件返回到事件循环(这通常意味着在当前执行的函数返回</em>之后<em>),对象才会被删除。在</p>
<p>如果要立即删除对象,请使用<a href="http://pyqt.sourceforge.net/Docs/sip4/python_api.html" rel="nofollow">sip module</a>。这样可以删除布局及其包含的所有小部件,如下所示:</p>
<pre><code>import sip
...
class Window(QtGui.QMainWindow):
...
def populateFrame(self):
self.deleteLayout(self.frame.layout())
layout = QtGui.QVBoxLayout(self.frame)
...
def deleteLayout(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.deleteLayout(item.layout())
sip.delete(layout)
</code></pre>