如何获取列表的字符串值

时间:2014-10-23 15:16:29

标签: python pyqt qlineedit

我是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

1 个答案:

答案 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]