我应该如何将这些列表放在一起?
How should I put these lists together?
我正在用 Pyqt 创建一个界面。此界面生成一个.txt文件。
基本上在 text_file
中,我生成 .txt 文件,其中文件的标题链接到 radio_value
,文件的内容链接到 clickconector
。后者是我遇到问题的地方。 relleno
是一个列表,其中填写了表格中的内容,form_label
是这个的标签。我需要将两个列表合并为一个,我从最基本的列表开始尝试:a = zip (form_label, Relleno)
,但它给出了一个错误:TypeError: can only join an iterable
(我知道它与文本的 join
有关文件),以及许多其他基本上给出相同错误的错误,我需要正确编写(我知道代码的 return
是错误的,它只会 return 第一个元组。我尝试重复,但所有的元组)
我将跳过配置按钮的部分,以便更加具体。也许这是菜鸟的错误,但我已经尝试了几个小时,但无法得到我想要的。欢迎任何建设性的批评
def clickconector (self):
relleno = [self.bitacora.text(), self.turno.text(), self.asesor.text(), self.item.text(), self.modelo.text(), self.identificacion.text(), self.rig.text(),self.horometro.text(),self.condicion.text(),self.orden.text(), self.observacion.text()]
form_label = ["bitacora", 'turno', 'asesor', 'item', 'modelo', 'identificacion', 'rig', 'horometro', 'condicion', 'orden', 'observacion']
for a,b in zip (form_label, relleno):
print (a,b)
def radio_value (self):
if self.pendiente.isChecked():
return 'Pendiente' , self.bitacora.text()
if self.terminado.isChecked():
return 'Terminado', self.bitacora.text()
def text_file(self):
filename = f"{' '.join(self.radio_value())}.txt"
with open(filename, "w") as f:
f.write(" ".join(self.clickconector()))
return f
您的错误来自行
f.write(" ".join(self.clickconector()))
clickconector() 没有 return 任何东西,因此错误说只能迭代~.
尝试 return在可迭代中输入一些文本或只是文本。
-----更新-----
我改成这样
def clickconector (self):
relleno = [self.bitacora.text(), self.turno.text(), self.asesor.text(), self.item.text(), self.modelo.text(), self.identificacion.text(), self.rig.text(),self.horometro.text(),self.condicion.text(),self.orden.text(), self.observacion.text()]
form_label = ["bitacora", 'turno', 'asesor', 'item', 'modelo', 'identificacion', 'rig', 'horometro', 'condicion', 'orden', 'observacion']
return [str(label_text) for label_text in zip(form_label, relleno)] # just return list of tuples
def radio_value (self):
if self.pendiente.isChecked():
return 'Pendiente' , self.bitacora.text()
if self.terminado.isChecked():
return 'Terminado', self.bitacora.text()
def text_file(self):
filename = f"{' '.join(self.radio_value())}.txt"
with open(filename, "w") as f:
f.write(" ".join(self.clickconector()))
return f
我正在用 Pyqt 创建一个界面。此界面生成一个.txt文件。
基本上在 text_file
中,我生成 .txt 文件,其中文件的标题链接到 radio_value
,文件的内容链接到 clickconector
。后者是我遇到问题的地方。 relleno
是一个列表,其中填写了表格中的内容,form_label
是这个的标签。我需要将两个列表合并为一个,我从最基本的列表开始尝试:a = zip (form_label, Relleno)
,但它给出了一个错误:TypeError: can only join an iterable
(我知道它与文本的 join
有关文件),以及许多其他基本上给出相同错误的错误,我需要正确编写(我知道代码的 return
是错误的,它只会 return 第一个元组。我尝试重复,但所有的元组)
我将跳过配置按钮的部分,以便更加具体。也许这是菜鸟的错误,但我已经尝试了几个小时,但无法得到我想要的。欢迎任何建设性的批评
def clickconector (self):
relleno = [self.bitacora.text(), self.turno.text(), self.asesor.text(), self.item.text(), self.modelo.text(), self.identificacion.text(), self.rig.text(),self.horometro.text(),self.condicion.text(),self.orden.text(), self.observacion.text()]
form_label = ["bitacora", 'turno', 'asesor', 'item', 'modelo', 'identificacion', 'rig', 'horometro', 'condicion', 'orden', 'observacion']
for a,b in zip (form_label, relleno):
print (a,b)
def radio_value (self):
if self.pendiente.isChecked():
return 'Pendiente' , self.bitacora.text()
if self.terminado.isChecked():
return 'Terminado', self.bitacora.text()
def text_file(self):
filename = f"{' '.join(self.radio_value())}.txt"
with open(filename, "w") as f:
f.write(" ".join(self.clickconector()))
return f
您的错误来自行
f.write(" ".join(self.clickconector()))
clickconector() 没有 return 任何东西,因此错误说只能迭代~.
尝试 return在可迭代中输入一些文本或只是文本。
-----更新-----
我改成这样
def clickconector (self):
relleno = [self.bitacora.text(), self.turno.text(), self.asesor.text(), self.item.text(), self.modelo.text(), self.identificacion.text(), self.rig.text(),self.horometro.text(),self.condicion.text(),self.orden.text(), self.observacion.text()]
form_label = ["bitacora", 'turno', 'asesor', 'item', 'modelo', 'identificacion', 'rig', 'horometro', 'condicion', 'orden', 'observacion']
return [str(label_text) for label_text in zip(form_label, relleno)] # just return list of tuples
def radio_value (self):
if self.pendiente.isChecked():
return 'Pendiente' , self.bitacora.text()
if self.terminado.isChecked():
return 'Terminado', self.bitacora.text()
def text_file(self):
filename = f"{' '.join(self.radio_value())}.txt"
with open(filename, "w") as f:
f.write(" ".join(self.clickconector()))
return f