如何在QTableWidget的一列中添加一行?



我有一个包含两列的QTableWidget: "绝对链接"和"非绝对链接"。

我想添加链接列表的每个链接,具体取决于它们是否绝对。我只想在相应的列中插入一行

有没有类似于.insertRow((的方法可以让我做到这一点?

这是我尝试过的,但它不断将我行添加到所有列中。

for link in self.links_:
numRows = self.HTMLLinksTableWidget.rowCount()
self.HTMLLinksTableWidget.insertRow(numRows)
if self.isAbsolute(link):
self.HTMLLinksTableWidget.setItem(numRows, 1, QtWidgets.QTableWidgetItem(link))
else:
self.HTMLLinksTableWidget.setItem(numRows, 0, QtWidgets.QTableWidgetItem(link))

我也尝试过这个,使用两个列表,它不能完美运行,也没有添加列表中的所有链接:

for AbsoluteLink in self.AbsoluteLinks:
numRows = self.HTMLLinksTableWidget.rowCount()
self.HTMLLinksTableWidget.insertRow(numRows)
self.HTMLLinksTableWidget.setItem(numRows, 1, QtWidgets.QTableWidgetItem(AbsoluteLink))

for count, NonAbsoluteLink in enumerate(self.NonAbsoluteLinks):
self.HTMLLinksTableWidget.setItem(count, 0, QtWidgets.QTableWidgetItem(NonAbsoluteLink))

使用第二种策略,您可以执行以下操作:

self.AbsoluteLinks.setRowCount(max(len(self.AbsoluteLinks), len(self.NonAbsoluteLinks)))
for row, link in enumerate(self.AbsoluteLinks):
self.HTMLLinksTableWidget.setItem(row, 0, QtWidgets.QTableWidgetItem(link))
for row, link in enumerate(self.NonAbsoluteLinks):
self.HTMLLinksTableWidget.setItem(row, 1, QtWidgets.QTableWidgetItem(link))

(或者你可以组合两个for循环:(

self.AbsoluteLinks.setRowCount(max(len(self.AbsoluteLinks), len(self.NonAbsoluteLinks)))
for col, links in enumerate((self.AbsoluteLinks, self.NonAbsoluteLinks)):
for row, link in enumerate(links):
self.HTMLLinksTableWidget.setItem(row, col, QtWidgets.QTableWidgetItem(link))

最新更新