Как вернуть содержимое в рдакторе ячейки при неверных данных?
Добрый день
У меня есть таблица, связанная с ней модель и делегат для некоторых столбцов, ячейки в которых должны быть редактируемыми. Мне нужно сделать так, что если пользователь ввёл неправильные данные, то после нажатия Enter в ячейке были старые данные(до редактирования). Будет ли достаточно, если в функции модели setData будет производиться проверка и неверные данные просто не будут записываться?
Читаем доку.
При редактировании данных мы можем их отфильтровать и в делегате ,и в модели.
В модели стоит обрабатывать ошибки связанные со структурой данных или с нижележащим абстрогируемым слоем. Прочие, лучше фильтровать в делегате.
У меня как раз случай, когда я работаю с более низким уровнем. Например, пользователь ввёл текст с использованием допустимых символов, делегат предлагает данные модели, модель, в свою очередь, отправляет эти данные на проверку в абстрагируемый уровень. Возможен случай, когда новые данные не проходят по какому-то критерию, мне нужно вернуть содержимое ячейки в прежнее состояние. Как я могу это сделать? Документацию читал, но текст касательно этого вопроса не нашёл.
Трам парарам.
Смотрим сигналы базовго класса (qt-project.org/doc/qt-5/qabstractitemmodel.html)
Видим dataChanged, вы его должны были его использовать при переопределении setData, вот и высылайте со старым значением