Python QTableViewWidget insertRow,带有将内容添加到错误行的有序表

Python QTableViewWidget insertRow,带有将内容添加到错误行的有序表,python,qt,pyqt,qtablewidgetitem,Python,Qt,Pyqt,Qtablewidgetitem,我有一个过程,在QTableViewWidget的末尾添加一个新行,并用以下方式填充数据: #Add new row table.insertRow(table.rowCount()) #Fill the row item = QTableWidgetItem() item.setData(QtCore.Qt.DisplayRole,iterationNumber) self.tableOptimization.setItem(table.row

我有一个过程,在QTableViewWidget的末尾添加一个新行,并用以下方式填充数据:

    #Add new row
    table.insertRow(table.rowCount())

    #Fill the row
    item = QTableWidgetItem()
    item.setData(QtCore.Qt.DisplayRole,iterationNumber)
    self.tableOptimization.setItem(table.rowCount()-1, 0, item)

    item = QTableWidgetItem()
    item.setData(QtCore.Qt.DisplayRole,total)
    self.tableOptimization.setItem(table.rowCount()-1, 1, item)
问题是,如果在任何列中单击表格,则新添加的行不再是最后一行,因此setItem正在设置当前的最后一行元素


有什么办法解决这个问题吗?在添加之前填充数据?保持对插入行的引用。

< p>我知道如果我在C++中这样做,我会预先创建行,然后附加它,但是在Python中不可能。< /P> 此外,以下是文档说明的内容:

如果要在表格小部件中启用排序,请在用项目填充它之后再启用,否则排序可能会干扰插入顺序(有关详细信息,请参阅setItem()

所以我建议关闭排序,添加项目,然后再打开它。或者,如果这会导致视觉问题,只需枚举行,直到找到一个为空的行。这很乱,但我想这是你能做的最好的了