Python 对象中的列表会记住它';在创建新成员后删除成员
在根类中,每次按下F3键时,我都会创建新对象:Python 对象中的列表会记住它';在创建新成员后删除成员,python,qt,pyqt,pyqt4,Python,Qt,Pyqt,Pyqt4,在根类中,每次按下F3键时,我都会创建新对象: 类浏览器(QtGui.QMainWindow): indexlist=None 一些代码 def keyPressEvent(self,keyEvent): 如果keyEvent.key()==QtCore.Qt.key\u F3: keyEvent.accept() self.indexlist=self.ui.treeView.selectedIndexes() compareWin=CompareBox(self.indexlist,self
类浏览器(QtGui.QMainWindow):
indexlist=None
一些代码
def keyPressEvent(self,keyEvent):
如果keyEvent.key()==QtCore.Qt.key\u F3:
keyEvent.accept()
self.indexlist=self.ui.treeView.selectedIndexes()
compareWin=CompareBox(self.indexlist,self)
如果比较in.error==1:
self.indexlist=None
其他:
self.indexlist=None
比较设置模式(True)
在.show()中进行比较
我有一门课:
类比较框(QtGui.QDialog):
参数列表=[]
def\uuuu init\uuuu(self,indexlist=None,parent=None):
一些现在的代码
self.parameterlist.append(someobject)
又是一些代码
self.parameterlist=[]
self.close()
当我的应用程序工作时,我会重复创建这些对象,每次创建新对象时,它都会记住上一个对象中的parameterlist成员。
我试过:del(parameterlist)
,但没用。
我还注意到,这些对象的析构函数只有在应用程序关闭时才被调用。但我的朋友告诉我,这是用来检查对话框窗口结束方式的Qt特性。我必须承认,我非常困惑,完全不知道发生了什么。您在类中所关心的参数列表对于您创建的每个实例都是相同的
您应该尝试以下方法:
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()
对于创建的每个实例,您在类中创建的参数列表都是相同的
您应该尝试以下方法:
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()
您使用的是类变量而不是实例变量。不要在类主体中初始化paramrist
,而是在构造函数中使用self.parameterlist=[]
。非常感谢,我知道我的错误一定很简单,但我没有想到这一点。非常感谢。您使用的是类变量而不是实例变量。不要在类主体中初始化paramrist
,而是在构造函数中使用self.parameterlist=[]
。非常感谢,我知道我的错误一定很简单,但我没有想到这一点。非常感谢。