Qt4 如何检测表视图中的项目何时被修改?

Qt4 如何检测表视图中的项目何时被修改?,qt4,qtableview,qabstracttablemodel,Qt4,Qtableview,Qabstracttablemodel,我有一个表视图,其中我在3列上添加了不同的项。这些项目是可编辑的,因此我可以在视图中直接修改它们 bool ClothoidTableModel::setData(const QModelIndex &index, const QVariant &value, int role) { if (index.isValid() && role == Qt::EditRole) { int row = index.row();

我有一个表视图,其中我在3列上添加了不同的项。这些项目是可编辑的,因此我可以在视图中直接修改它们

bool ClothoidTableModel::setData(const QModelIndex &index, const QVariant &value, int role) { if (index.isValid() && role == Qt::EditRole) { int row = index.row(); ClothoidCurve p = listOfCurves.value(row); if (index.column() == 0) p.length = value.toFloat(); else if (index.column() == 1) p.startCurvature = value.toFloat(); else if (index.column() == 2) p.endCurvature = value.toFloat(); else return false; listOfCurves.replace(row, p); emit(dataChanged(index, index)); return true; } return false; } 上面的方法是在我的表模型中声明的,在我添加和修改表中的数据时都会调用它


我只想在修改表中的项目时发送一个信号。我该怎么做?有没有办法区分添加和修改

您想从何处了解差异?行为良好的模型会在添加新数据之前和之后发出。我认为,尽管我不确定新行的数据设置是否应该在这些调用之间进行。无论如何,值得一试。否则,您可能能够跟踪上次插入的行,并使用它来区分添加和编辑。它可能不完美,但可能涵盖了您的大多数用例