PyQ中填充多个表的Python函数

2024-04-20 11:49:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个有多个函数的类,几乎每个函数中我都要填充不同的QTableWidgets。我想创建一个函数,指定一个表名、标题和数据填充该表。

这是有效的(但是是静态的,只适用于一个表“tableParada”):

header = ['Horario teórico', 'Entrada a terminal', 'Salida de terminal', 'Tiempo parcial en terminal']
self.ui.tableParada.setRowCount(cantidadFilas)
self.ui.tableParada.setColumnCount(len(header))
self.ui.tableParada.setHorizontalHeaderLabels(header)

for columnas in range(cantidadFilas):
    self.ui.tableParada.setItem(columnas, 0, QTableWidgetItem(str(tiempoTeoricoTerminal[columnas])))
    self.ui.tableParada.setItem(columnas, 1, QTableWidgetItem(str(tiempoInicioTerminal[columnas].time())))
    self.ui.tableParada.setItem(columnas, 2, QTableWidgetItem(str(tiempoFinTerminal[columnas].time())))
    self.ui.tableParada.setItem(columnas, 3, QTableWidgetItem(str(tiempoEnTerminal[columnas])))

这是我想出的(但不起作用):

^{pr2}$

问题是当我调用函数时:

headerColumna = ['Horario teórico', 'Entrada a terminal', 'Salida de terminal', 'Tiempo parcial en terminal']
headerFila = []
completarTabla('tableParada', headerFila, headerColumna, tiempo)

我得到:

Traceback (most recent call last):
File "C:/Users/TIC/Dropbox/TransBus - La Estrella/Programación/control-de-tiempo/query.py", line 362, in queryParada
completarTabla('tableParada', headerFila, headerColumna, tiempo)
File "C:/Users/TIC/Dropbox/TransBus - La Estrella/Programación/control-de-tiempo/query.py", line 659, in completarTabla
tabla.setRowCount(len(headerFila))
AttributeError: 'str' object has no attribute 'setRowCount'

我知道我将一个str传递给函数,然后替换不起作用,如果我传递表名(tableParada),它也不起作用。然后:

  • 我应该将什么传递给函数才能使其工作?在
  • 还有别的方法吗?在
  • 有可能吗?在

抱歉,我是Python+PyQt,面向对象编程的新手,这也是我在stackoverflow上的第一篇文章,英语不是我的母语。我真的很想用正确的方式来做。在

提前谢谢!在


Tags: 函数inselfuideterminalheaderstr