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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как узнать какие данные изменены по сигналу dataChanged (...)?  (Прочитано 2568 раз)
vdann
Гость
« : Июль 22, 2011, 10:12 »

Всем доброго времени суток! У QAbstractItemModel есть сигнал dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ), который отправляется при любом изменении состояния модели, но мне необходимо знать какие данные были изменены (то есть какими они были до изменения и что в них изменилось). Может кто-нибудь знает какое-нибудь решение этой проблемы?
Записан
twp
Гость
« Ответ #1 : Июль 22, 2011, 19:56 »

самое простое что пришло в голову - это переопределить в модели метод QAbstractItemModel::setData() и в нем испускать свой сигнал
Записан
vdann
Гость
« Ответ #2 : Август 01, 2011, 12:49 »

Спасибо за совет, но это немного не то, модель передается снаружи, мне её никак не унаследовать...
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Август 01, 2011, 12:57 »

Самый простой вариант - это после заливки данных в модель пробежаться по всем элементам и сделать для каждого элемента копию данных через setData(Qt::UserRole) и уже в слоте сравнивать data() c data(Qt::UserRole).
Записан

Qt 5.11/4.8.7 (X11/Win)
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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