Далее к правильному ответу Джеймса Тернера, вот дополнительный код для дальнейшего использования.Чтобы сигнализировать, что все данные изменились, необходимо извлечь индексы первого и последнего элемента.
Первый элемент тривиален:
QModelIndex FooModel::firstIndex() const
{
return index( 0, 0 );
}
Последний элемент также тривиалендля иерархии одного уровня:
QModelIndex FooModel::lastIndex() const
{
QModelIndex lastTopLevelIndex = index( rowCount() - 1, 0 );
return index( rowCount( lastTopLevelIndex ) - 1, kNumColumns, lastTopLevelIndex );
}
и немного более сложный в общем случае:
QModelIndex FooModel::lastIndex() const
{
QModelIndex parent;
QModelIndex candidate;
QModelIndex lastIndex;
int row = rowCount();
while ( row > 0 )
{
parent = index( row - 1, 0, parent );
candidate = index( row - 1, kNumColumns, parent );
row = rowCount( parent );
}
return candidate;
}
(я не уверен, важно ли всегда иметь родителя напервый столбец или нет ...)