对象内的列表在创建新成员后会记住它的成员

时间:2011-05-02 10:19:24

标签: python qt pyqt pyqt4

在root类中,每次按下F3键时都会创建新对象:

class Browser(QtGui.QMainWindow):
indexlist = None
some code
def keyPressEvent(self, keyEvent):
if keyEvent.key() == QtCore.Qt.Key_F3:
keyEvent.accept()
self.indexlist = self.ui.treeView.selectedIndexes()
compareWin = CompareBox(self.indexlist, self)
if compareWin.error == 1:
self.indexlist = None
else:
self.indexlist = None
compareWin.setModal(True)
compareWin.show()

但它没有帮助。 此外,我注意到只有在关闭应用程序时才会调用这些对象的析构函数。但我的朋友告诉我,这是用于检查对话窗口如何结束的Qt功能。我必须承认,我很困惑,完全不知道发生了什么。

1 个答案:

答案 0 :(得分:3)

您在类中声明的参数列表对于您创建的每个实例都是相同的。

你应该尝试这样的事情:

class CompareBox(QtGui.QDialog):
    def __init__(self, indexlist=None, parent=None):
        some code now then
        self.parameterlist = []
        self.parameterlist.append(someobject) 
        again some code 
        self.close()