【发布时间】:2011-08-16 21:25:01
【问题描述】:
在根类中,每次按下 F3 键时我都会创建新对象:
class Browser(QtGui.QMainWindow):indexlist = None<br>some codedef keyPressEvent(self, keyEvent):<br> if keyEvent.key() == QtCore.Qt.Key_F3:<br> keyEvent.accept() self.indexlist = self.ui.treeView.selectedIndexes()<br> compareWin = CompareBox(self.indexlist, self) if compareWin.error == 1:<br> self.indexlist = None<br> else: self.indexlist = None<br> compareWin.setModal(True) compareWin.show()
我有一堂课:
class CompareBox(QtGui.QDialog): parameterlist = [] def __init__(self, indexlist=None, parent=None): some code now then<br> self.parameterlist.append(someobject) again some code <br> self.parameterlist = [] self.close()<br>
当我的应用程序工作时,我会重复创建这些对象,并且每次创建新对象时,它都会记住前一个对象的参数列表成员。
我试过: del(parameterlist) 但它没有帮助。
此外,我注意到这些对象的析构函数仅在应用程序关闭时才被调用。但我的朋友告诉我,这是用于检查对话窗口如何结束的 Qt 功能。我必须承认我很困惑,完全不知道发生了什么。
【问题讨论】:
-
您使用的是类变量而不是实例变量。不要在类体中初始化
paramrterlist,而是在构造函数中使用self.parameterlist = []。 -
非常感谢,我知道我的错误一定很简单,但我没有想到。非常感谢。