我试图遍历一个CSV文件,从每一行获取一个项目,并将其插入GUI中的QLineEdit
。在
当我单击按钮self.nextAppointment
时,它会填充字段,但总是使用CSV文件中最后一行的电子邮件地址。随后单击该按钮似乎不会执行任何操作。在
我认为我没有正确地创建/使用生成器,但我不确定。在
我如何循环CSV文件并得到我想要返回的字段,这样我就可以一次为CSV的每一行将其放入GUI。在
以下是相关代码:
self.nextAppointment.clicked.connect(self.nextFunction)
def nextFunction(self):
self.emailGenerator = self.nextEmail()
for email in self.emailGenerator:
self.toField.setText(email)
def nextEmail(self):
with open('assigned_appt_leads.csv', 'rb') as infile:
rdr = csv.DictReader(infile, dialect='excel')
for line in rdr:
yield line['Email Address']
我已经用下面的方法进行了测试,它得到了第一个电子邮件地址,但是按next不会将它更改为下一行的电子邮件地址。在
^{pr2}$
你是正确的循环和屈服。在
你要做的是正确使用结果:
将替换任何先前的文本值每次循环迭代。这就是您只看到最后一个值的原因;之前对
self.toField.setText()
的所有调用都成功了,但是接下来的迭代将再次覆盖这些调用。在您需要将附加到
^{pr2}$QLineEdit
小部件中的现有文本。我建议您使用.insert()
方法:如果要将项目逐个分配给用户事件字段,请在每次需要新地址时调用
next()
onself.emailGenerator
:而不是绕着它转。如果电子邮件地址已用完,上面的示例行将字段设置为
''
。在相关问题 更多 >
编程相关推荐