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

时间:2017-09-27 02:20:44

标签: python pyqt pyside qtablewidget qtablewidgetitem

我有一个PySide QTableWidget,我通过运行一个函数用QListWidget中的项填充这个表:

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中的其他项运行此函数替换表中的项。如何将新项目附加到现有项目?

1 个答案:

答案 0 :(得分:1)

要添加新元素,您必须增加行数,并使用新位置。因此,您必须获取插入前的行数才能使用函数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