簡體   English   中英

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

[英]How to add a row to only one column of a 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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM