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

2024-09-28 12:17:33 发布

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

我有一个带有两列的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))

Tags: inself列表for链接countlinksetitem
1条回答
网友
1楼 · 发布于 2024-09-28 12:17:33

使用第二种策略,你可以

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))

相关问题 更多 >

    热门问题