我是PyQt的初学者,我做了一个公式。 self.tName1,self.tlName1,self.tCel,self.tCel1,self.tcc1,self.tEmail,self.tTel是QLineEdit,我将所有这些变量放在一个列表中。然后,我创建了一个for循环,以便评估每个QLineEdit值,如果它们为空,则填充它们为' NULL'。循环效果很好,但我试图打印列表中的所有值。例如:[' NULL',' NULL',' 3176797100',' NULL',' NULL',& #39; 1098685161',' mm @gmail.com',' NULL']但它不起作用。
self.tName1 = QtGui.QLineEdit(self)
self.tName1.move(85,176)
self.tName1.resize(199,30)
self.tlName1 = QtGui.QLineEdit(self)
self.tlName1.move(95,210)
self.tlName1.resize(190,30)
def eval(self):
var=[self.tName1, self.tlName1, self.tCel, self.tCel1,self.tcc1, self.tEmail, self.tTel]
i=0
for i in range(len(var)):
if var[i]=="":
var[i]='NULL'
else:
pass
print var
print self.tName1.text()
print self.tName1
如果我打印self.variable.text(),则不会出现任何内容。另一方面,如果我打印self.Name1,他就会出现QLineEdit:<PyQt4.QtGui.QLineEdit object at 0x7fb1046cc180>
。我感谢您的帮助!! :P
答案 0 :(得分:-1)
嗯,问题不是那么清楚,这一行:
var=[self.tName1, self.tlName1, self.tCel, self.tCel1,self.tcc1, self.tEmail, self.tTel]
创建一个包含一些变量的新列表,无论你在这个列表中改变什么,它都不会影响原始变量的值,看看:
>>> a = "hello"
>>> b = "world"
>>> var = [a, b]
>>> var
["hello", "world"]
>>> var[0] = "hi"
>>> a
hello
>>> var
["hi", "world"]
>>> a = "whatsup"
>>> var
["hi", "world"]
所以如果你想改变原始变量(在你的情况下是self.tname1.text,self.tCel.text)你必须单独改变它们中的每一个,我认为它是用:
>>> if self.tname1.text()=="":
.... self.tname1.setText("NULL")
等等。
我希望这能回答你的问题。
编辑: 评论后, 要从对象获取text属性,您可以尝试:
print [x.text() for x in var]