Я намерен создать свою собственную модель элемента, производную от QAbstractItemModel. Модель не содержит данных, но оборачивает некоторый репозиторий данных. Этот репозиторий излучает сигналы после того, как элементы вставлены, удалены, переименованы и т. д.
Всякий раз, когда что-то изменяется в репозитории, моя модель элемента должна пересылать эти сигналы.
Однако репозиторий имеет автономные сигналы, такие как void itemRemoved(int index);
, в то время как QAbstractItemModel имеет пары начала/конца защищенных функций (и сигналов), таких как beginInsertRows()
и endInsertRows()
.
Как мне справиться с этим? Например. Я мог бы подключить слот, подобный следующему, к сигналу itemRemoved()
репозитория:
void RepositoryItemRemoved(int i)
{
beginInsertRows(QModelIndex(), i, i);
endInsertRows();
}
На основе приведенного выше примера: допустимо ли вызывать beginInsertRows()
/ endInsertRows()
последовательно после того, как строка была вставлена в репозиторий?