使用下面的代碼,我的預覽小部件的__del__
方法永遠不會被調用。如果我取消註釋「del window
」這一行,它就行。爲什麼?未使用父窗口刪除QWidget
#!/usr/bin/env python
from PyQt4 import QtGui
class Preview(QtGui.QWidget):
def __init__(self, parent):
QtGui.QWidget.__init__(self, parent)
def __del__(self):
print("Deleting Preview")
class PreviewWindow(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.widget = Preview(self)
self.setCentralWidget(self.widget)
def __del__(self):
print("Deleting PreviewWindow")
if __name__ == "__main__":
app = QtGui.QApplication(["Dimension Preview"])
window = PreviewWindow()
window.show()
app.exec()
# del window
它爲我在Fedora的Linux 14(PyQt的4.8.3,Python 2.7版) 。不過,我不得不將app.exec()更改爲app.exec_()。 – xioxox
@xioxox。你確定_both_'__del__'方法被調用嗎? – ekhumoro
是的 - 他們爲我做的 – xioxox