Russian Qt Forum
Ноябрь 23, 2024, 20:03 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Закрыта] Обновление одного итема в модели  (Прочитано 3239 раз)
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« : Октябрь 03, 2011, 13:46 »

Суть такова, есть модель которая отображает список картинок допустим, для каждой картинки нужно создать превью. Что делаю в потоке создаю превьюшки, и возвращаю их в модель, естественно пока превьюшки создаются модель уже загружена и на месте картинок крутиться индикатор, нужно реализовать такую фичу: Когда изображение было подготовлено оно вернулось в модель, и обновила нужный элемент. Вопрос, как обновить только один элемент модели ? Делать тупо reset() плохо, ибо из потока подряд придут 10ть картинок, а 10 reset() подряд как то не кошерно.
« Последнее редактирование: Октябрь 03, 2011, 14:05 от ecspertiza » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Октябрь 03, 2011, 13:49 »

void QAbstractItemModel::dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ) [signal]
Эмить этот сигнал и будет тебе счастье. Подмигивающий
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #2 : Октябрь 03, 2011, 13:56 »

Спасибо, уже смотрю в его сторону. Правильно ли я понимаю что если нужно обновить допустим 3ий элемент то мы эмитим нечто вроде

Код:
emit dataChanged(index(2),index(2)) 

?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Октябрь 03, 2011, 13:57 »

Когда изображение было подготовлено оно вернулось в модель, и обновила нужный элемент.
А разве не через QAbstractItemModel::setData() изображение "вернулось в модель"?
Записан

Qt 5.11/4.8.7 (X11/Win)
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #4 : Октябрь 03, 2011, 13:59 »

неа, по сути обновился только контейнер модели.
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #5 : Октябрь 03, 2011, 14:04 »

dataChanged - помог, тему можно считать закрытой  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.234 секунд. Запросов: 23.