Reputation: 1303
So I am dynamically creating QLineEdit's from a range:
for w in range(x):
s = "s"+str(w)
self.s = QtGui.QLineEdit(self)
self.s.setGeometry(QtCore.QRect(15, y, 20, 40))
self.s.setObjectName(_fromUtf8(s))
self.s.show()
y += 40
I am looking to delete those later. I have tried a bunch of things, but it only deletes the last one I add. I can't find anything explaining why:
for w in range(x):
s="s"+str(w)
self.s.deleteLater()
It works for the last one, but none before that. So it will delete the bottom one of the lists.
Any ideas?
Upvotes: 0
Views: 861
Reputation: 19154
for w in range(x):
s="s"+str(w)
self.s.deleteLater()
You are setting s
to the name of the QLineEdit, but then you're deleting self.s
, a different variable altogether, which is set in the first loop to the last created QLineEdit. I think you want something like this:
Creating
self.edits = []
for w in range(x):
s = "s"+str(w)
s = QtGui.QLineEdit(self)
s.setGeometry(QtCore.QRect(15, y, 20, 40))
s.setObjectName(_fromUtf8(s))
s_name.show()
self.edits.append(s)
y += 40
Deleting
for s in self.edits:
s.deleteLater()
Upvotes: 2