dataChanged
работает только на существующих данных, вам нужно позвонить beginInsertRows()
/ endInsertRows()
void MyModel::add(const Person& p)
{
beginInsertRows(QModelIndex(), people.count(), people.count());
people.push_back(p);
endInsertRows();
QModelIndex top = createIndex(people.count() - 1, 0, 0);
QModelIndex bottom = createIndex(people.count() - 1, 3, 0);
emit dataChanged(top, bottom); // emit layoutChanged() if headers changed
}
Это должно работать.Может быть, вам даже не нужно emit dataChanged