QAbstractTableModelから独自のモデル クラスを派生させた Qt アプリケーションがあります。ドキュメントに規定されている必要なメソッドを実装しました。removeRowsメソッドを呼び出すと、ビューで変更が正しく行われます (削除したい行が削除されます)。
しかし、どういうわけか、モデルでの操作は、モデルでデータを保存するために使用する QList に反映されていないようです。QList に保存されている値をディスクに保存すると、removeRows によって何も消去されていないように見えます。
私の removeRows の実装は次のようになります (これはAdvanced Qt Programming、Chapter 3、p.125 のコードに基づいています):
bool MyModel::removeRows(int row, int count, const QModelIndex&)
{
beginRemoveRows( QModelIndex(), row, row + count - 1);
for (int i = 0; i < count; ++i) {
mMyQList.removeAt(row);
}
endRemoveRows();
return true;
}
これを修正するにはどうすればよいですか? 私は何を取りこぼしたか?
ありがとう!