PyQT QtGui.QTableWidgetItem使用方法

1 投票
1 回答
7840 浏览
提问于 2025-04-16 04:27

我有一个 QtGui.QTableWidgetItem,我通过下面的 createRow 函数把它添加到了一个表格里:

def createRow(self, listA):
    rowNum = self.table.rowCount()
    self.table.insertRow(rowNum)
    i = 0
    for val in listA:
        self.table.setItem(rowNum, i, QtGui.QTableWidgetItem(val))
        i += 1

现在我有一个线程,它会定期更新行的值。线程调用的函数如下:

def updateRow(self, listB):
    row = 0
    numRows = self.table.rowCount()
    i = 0
    while i < numRows:

        if listB[0] == self.table.item(i,0):
            row = i
        i+=1
    j = 0
    for val in listB:
        self.table.setItem(row, j, QtGui.QTableWidgetItem(val))
        j += 1

不过,这个方法不太奏效,因为 listB[0] 是一个字符串,而 self.table.item(i,0) 是一个 QTableWidgetItem。有没有人知道我该怎么解决这个问题?

最后,我想做的就是更新这个函数输入的列表中第一个项目匹配的行(listB)。

1 个回答

5

使用 QTableWidgetItem.text(self) (也就是说:self.table.item(i,0).text())来获取一个单元格或 QTableWidgetItem 的内容。

撰写回答