Название: [Закрыта] Обновление одного итема в модели Отправлено: ecspertiza от Октябрь 03, 2011, 13:46 Суть такова, есть модель которая отображает список картинок допустим, для каждой картинки нужно создать превью. Что делаю в потоке создаю превьюшки, и возвращаю их в модель, естественно пока превьюшки создаются модель уже загружена и на месте картинок крутиться индикатор, нужно реализовать такую фичу: Когда изображение было подготовлено оно вернулось в модель, и обновила нужный элемент. Вопрос, как обновить только один элемент модели ? Делать тупо reset() плохо, ибо из потока подряд придут 10ть картинок, а 10 reset() подряд как то не кошерно.
Название: Re: Обновление одного итема в модели Отправлено: Пантер от Октябрь 03, 2011, 13:49 void QAbstractItemModel::dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ) [signal]
Эмить этот сигнал и будет тебе счастье. ;) Название: Re: Обновление одного итема в модели Отправлено: ecspertiza от Октябрь 03, 2011, 13:56 Спасибо, уже смотрю в его сторону. Правильно ли я понимаю что если нужно обновить допустим 3ий элемент то мы эмитим нечто вроде
Код: emit dataChanged(index(2),index(2)) ? Название: Re: Обновление одного итема в модели Отправлено: GreatSnake от Октябрь 03, 2011, 13:57 Когда изображение было подготовлено оно вернулось в модель, и обновила нужный элемент. А разве не через QAbstractItemModel::setData() изображение "вернулось в модель"?Название: Re: Обновление одного итема в модели Отправлено: ecspertiza от Октябрь 03, 2011, 13:59 неа, по сути обновился только контейнер модели.
Название: Re: Обновление одного итема в модели Отправлено: ecspertiza от Октябрь 03, 2011, 14:04 dataChanged - помог, тему можно считать закрытой :)
|