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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как отследить изменение, сделанное делегатом?  (Прочитано 2175 раз)
phpCoder
Гость
« : Январь 01, 2015, 16:03 »

Как отследить изменение в ячейке таблицы, сделанное делегатом?
Например делегат - это комбобокс. Выбрал какое-то значение, нажал enter. Дальше, как таблице узнать, что делегат что-то сделал.
Сигнал itemChanged не годится. Он вызывается всегда, когда я вставляю данные в таблицу.
Записан
Johnik
Крякер
****
Offline Offline

Сообщений: 339


Просмотр профиля
« Ответ #1 : Январь 01, 2015, 21:24 »

Как отследить изменение в ячейке таблицы, сделанное делегатом?
Написать правильно делегат.
Например делегат - это комбобокс. Выбрал какое-то значение, нажал enter. Дальше, как таблице узнать, что делегат что-то сделал.
Сигнал itemChanged не годится. Он вызывается всегда, когда я вставляю данные в таблицу.
Для делегата, который реализует виджет редактирования (выбора, в вашем случае), как минимум надо реализовать методы: createEditor, setEditorData, setModelData.

P.S. Что вы подразумеваете под "делегатом"?
Записан
phpCoder
Гость
« Ответ #2 : Январь 01, 2015, 21:50 »

Да это понятно. Давно сделано.
Дальше-то как? Есть виджет с таблицей, которую редактирую. В этом виджете как узнать, что делегат завершил редактирование? И какие новые данные были вставлены в ячейку?
Записан
Johnik
Крякер
****
Offline Offline

Сообщений: 339


Просмотр профиля
« Ответ #3 : Январь 01, 2015, 22:08 »

В этом виджете как узнать, что делегат завершил редактирование? И какие новые данные были вставлены в ячейку?
Изменения данных происходит в виджете, и делегат должен ловить эти изменения и вызывать сигнал commitData(), и closeEditor(), при необходимости. Запись же изменений в модель происходит в методе делегата: setModelData.
И какие новые данные были вставлены в ячейку?
Об изменении данных должна сообщать модель.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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