Цитата(Litkevich Yuriy @ 27.4.2010, 1:38)
Цитата(azure @ 27.4.2010, 3:21)
при этом соответствующая модель не обновляет QListView
соответствующая, это какая?
Которую я сделал. Сделал subclass от QAbstractListModel, реализовал data() и rowCount. Проверил, data() возвращает непустой QVariant, rowCount() возвращает число строк. И не важно, подключаю я модель к виду пока данных нет, или когда данные появляются - вид остается пустой. Вызовы model->rowCount() и model->data() происходят, значит, вид их вызывает. Возвращаются корректные значения.
Цитата(Litkevich Yuriy @ 27.4.2010, 1:38)
Цитата(azure @ 27.4.2010, 3:21)
Не совсем понимаю как и в каком виде передается информация об изменении структуры данных к модели и как от модели к виду.
методами Model::
data и Model::
setDataПредставление, для каждого элемента данных создаёт делегат (QStyledItemDelegat), если ты сам явно его не установил.
Когда элемент данных (читай делегат) находится в видимой области, он запрашивает данные у модели с помощью Model::
data.
Когда элемент данных (читай делегат) переходит в режим редактирования, то делегат создаёт виджет-редактор, который получает данные точно также, только роль данных другая. А при закрытии виджета редактора, последний отправляет данные в модель с помощью Model::
setDataВот это я вроде как понимаю. А как вид узнает от модели, что нижележащие данные изменились? Модель, как я понял, должна быть оповещена об изменении данных при помощь setData(), но я не совсем понимаю, как её реализовать. Вы там что-то говорили про "раздельчик маленький про изменение размеров модели". Покажите, где это, что-то не могу найти. Заранее спасибо.