在QT/Python的tableWidget中添加字符串项

2 投票
2 回答
9074 浏览
提问于 2025-04-16 23:29

我有一个字符串数组,我想把每个字符串放在一个表格的不同的行,但同一列里。

我正在使用 setItem 函数来修改想要的单元格,但我遇到了一个错误:QTableWidget.setItem(int, int, QTableWidgetItem): argument 3 has unexpected type 'str'。我查了一下,发现我需要用 QTableWidgetItem 函数(这里)把字符串转换成 tableWidgetItem,但是我不知道怎么用这个函数,也不太明白“类型”(那个整数值)是什么意思。

如果能给我一个具体的例子,教我怎么用这个函数把字符串转换成 tableWidgetItem,那就太好了。

到目前为止,我的代码是这样的:

pc = 2
i = 0
while i <= pc:
    self.tableWidget.insertRow(i)
    self.tableWidget.setItem(i, 0, parameter[i])
    i += 1

如果有人能告诉我有没有比 setItem 更好的方法来把字符串添加到 tableWidget,那也会很有帮助。

2 个回答

0

你会遇到这个错误是因为setItem的第三个参数需要的是QTableWidgetItem*类型的输入。试试这个

pc = 2
self.tableWidget.setRowCount(pc)
i = 0
while i <= pc:
    self.tableWidget.setItem(i, 0, QtGui.QTableWidgetItem(parameter[i]))
    i += 1
6

QTableWidgetItem 的构造函数可以接受一个字符串作为参数。在你的例子中,你只需要把第五行改成这样(假设 parameter 是一个字符串列表)

self.tableWidget.setItem(i, 0, QtGui.QTableWidgetItem(parameter[i]))

撰写回答