3 つの列に異なる項目を追加するこのテーブル ビューがあります。項目は編集可能なので、ビューで直接変更できます。
bool ClosoidTableModel::setData(const QModelIndex &index, const QVariant &value, int role)
{
if (index.isValid() && role == Qt::EditRole) {
int 行 = index.row();
ClosoidCurve p = listOfCurves.value(行);
もし (index.column() == 0)
p.length = value.toFloat();
そうでなければ (index.column() == 1)
p.startCurvature = value.toFloat();
そうでなければ (index.column() == 2)
p.endCurvature = value.toFloat();
そうしないと
false を返します。
listOfCurves.replace(行、p);
エミット (dataChanged (インデックス、インデックス));
true を返します。
}
false を返します。
}
上記のメソッドはテーブル モデルで宣言されており、テーブル内のデータを追加するときと変更するときに呼び出されます。
テーブル内の項目を変更した場合にのみシグナルを送信したいのですが、どうすればよいですか? 追加と変更を区別する方法はありますか?