在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功能。我必须承认,我很困惑,完全不知道发生了什么。
答案 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()