如何在 table 小部件 PySide 中追加一行

How to append a row in a table widget PySide

我有一个 PySide QTableWidget,我通过 运行 一个函数:

用 QListWidget 中的项目填充这个 table
def fillTable(self):
    fruits = self.listWidget.selectedItems() # ['Apple', 'Banana', 'Coconut']
    self.tableWidget.setRowCount(len(fruits))
    n = 0
    for i in fruits:
        item = QTableWidgetItem()
        self.tableWidget.setItem(n, 0, item) 
        item.setText(i)
        n = n + 1

运行这个函数再次用QListWidget中的另一个项目替换了table中的项目。如何将新项目附加到现有项目?

要添加新元素,您必须增加行数,并使用新位置。为此,您必须获取插入前的行数才能使用函数 rowCount(),如下所示:

def fillTable(self):
    fruits = self.listWidget.selectedItems() # ['Apple', 'Banana', 'Coconut']
    n = self.tableWidget.rowCount()
    self.tableWidget.setRowCount(n + len(fruits))
    for i in fruits:
        item = QTableWidgetItem()
        self.tableWidget.setItem(n, 0, item) 
        item.setText(i)
        n = n + 1