我有一個Qt應用程序,我從QAbstractTableModel中派生出我自己的模型類。我已經實施了必要的方法,如prescribed in the documentation。當我調用removeRows方法時,更改在我的視圖中是正確的(我想刪除的行被刪除)。從QAbstractTableModel派生類中刪除行不起作用,爲什麼?
但不知何故,模型上的操作似乎沒有傳播到我在模型中用於存儲數據的QList。當我將存儲在QList中的值保存到磁盤時,看起來沒有任何東西被removeRows從中清除。
這裏是我的removeRows實施樣子(這是基於從書高級Qt編程代碼,第3章,第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;
}
我該如何解決這個問題?我錯過了什麼?
謝謝!
你應該張貼一些代碼,ESP。你的removeRows()impl。 – 2011-03-26 23:25:44
謝謝,我用我的removeRows()代碼更新了我的問題。 – 2011-03-27 01:25:32