Название: Как отследить изменение, сделанное делегатом? Отправлено: phpCoder от Январь 01, 2015, 16:03 Как отследить изменение в ячейке таблицы, сделанное делегатом?
Например делегат - это комбобокс. Выбрал какое-то значение, нажал enter. Дальше, как таблице узнать, что делегат что-то сделал. Сигнал itemChanged не годится. Он вызывается всегда, когда я вставляю данные в таблицу. Название: Re: Как отследить изменение, сделанное делегатом? Отправлено: Johnik от Январь 01, 2015, 21:24 Как отследить изменение в ячейке таблицы, сделанное делегатом? Написать правильно делегат.Например делегат - это комбобокс. Выбрал какое-то значение, нажал enter. Дальше, как таблице узнать, что делегат что-то сделал. Для делегата, который реализует виджет редактирования (выбора, в вашем случае), как минимум надо реализовать методы: createEditor, setEditorData, setModelData.Сигнал itemChanged не годится. Он вызывается всегда, когда я вставляю данные в таблицу. P.S. Что вы подразумеваете под "делегатом"? Название: Re: Как отследить изменение, сделанное делегатом? Отправлено: phpCoder от Январь 01, 2015, 21:50 Да это понятно. Давно сделано.
Дальше-то как? Есть виджет с таблицей, которую редактирую. В этом виджете как узнать, что делегат завершил редактирование? И какие новые данные были вставлены в ячейку? Название: Re: Как отследить изменение, сделанное делегатом? Отправлено: Johnik от Январь 01, 2015, 22:08 В этом виджете как узнать, что делегат завершил редактирование? И какие новые данные были вставлены в ячейку? Изменения данных происходит в виджете, и делегат должен ловить эти изменения и вызывать сигнал commitData(), и closeEditor(), при необходимости. Запись же изменений в модель происходит в методе делегата: setModelData.И какие новые данные были вставлены в ячейку? Об изменении данных должна сообщать модель. |