Я пытаюсь реализовать модель/представление архитектуры в своей программе, но представление не обновляется после смены модели, хотя я думаю, что это автоматически должно быть.View не обновляется после смены модели
Вот упрощенная версия моего кода:
QStringListModel *model = new QStringListModel;
QListView *view = new QListView;
view->setModel(model);
QStringList list;
list << "a" << "b" << "c";
model->setStringList(list);
model->stringList() << "d";
Проблема, на мой взгляд только содержит а, Ь и с. Но нет. Зачем? Я думал, что представление будет автоматически обновляться после изменения модели, но, похоже, это не так. У тебя есть идея?
Спасибо, это работает. Но, как вы сказали, он не оптимизирован из-за полного сброса модели. Разве нет лучшей альтернативы? –
Лучшей альтернативой является не использование QStringList, а создание собственного подкласса QAbstractListModel. Там вы можете использовать beginInsertRows() и endInsertRows() для добавления новых элементов без полного сброса модели. –
Вы также можете использовать 'QStandardItemModel'. Это просто и достаточно эффективно. –