pyqt - 在PyQT4中,动态删除 QLineEdit

  显示原文与译文双语对照的内容
0 0

因此,我将从一个范围中动态创建 QLineEdit:


 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

我想在以后删除这些。 我尝试了很多东西,但它只删除了我添加的最后一个。 我找不到任何解释原因的东西:


for w in range(x):
 s="s"+str(w)
 self.s.deleteLater()

那是最后一个但在那之前。 所以它将删除下面的列表。

有什么想法吗?

时间: 原作者:

0 0

for w in range(x):
 s="s"+str(w)
 self.s.deleteLater()

你将 s 设置为QLineEdit的名称,然后将 self.s 删除,这是一个不同的变量,它在第一个循环中设置。 我想你想要的是这样的东西:

创建的


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

删除


for s in self.edits:
 s.deleteLater()

原作者:
...