При соединении модели данных QAbstractTableModel к QListView данные обновляются автоматически (постоянно вызывается функция data).
Как можно самостоятельно управлять этим процессом?
Функция data вызывается не постоянно, а при щелчке мышью на соответствующий элемент QListView и при подаче сигнала QAbstractItemModel::dataChanged. Следовательно, если вы хотите, чтобы представление прочитало новые данные, нужно отправить этот сигнал.
emit dataChanged(index(0, 0), index(rowCount(), columnCount()));
Этот код заставит представление полностью перечитать все данные. Если нужно обновить только определённый участок данных, подставьте соответствующие индексы "правый-верхний" и "левый-нижний".
На сколько я понимаю непосредственно метод data вызывает не само представление, а делегат. Вы можете унаследовать свой собственный делегат от QAbstractItemDelegate или QStyledItemDelegate.
И установить его в представление при помощи метода QAbstractItemView::setItemDelegate.
PS: Спасибо разработчикам Qt за наше счастливое детство соблюдение S.O.L.I.D.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей