LINUX.ORG.RU

Кастомизация QDoubleSpinBox для QItemDelegate

 


0

1

Есть таблица по совместительству являющаяся QTableModel которая должна быть наполнена double'ами с массой условий. Ячейки таблицы могут принимать специальное значение (либо -1, либо NaN), которое таблица отдаёт представлениям как пустую ячейку. Эта часть работает.

Таблица представляется через QTableView. Для редактирования ячейки используются QDoubleSpinBox (посаженный туда через ItemDelegate'ы). Собственно нужно сделать так, чтобы помимо диапазона ввода валидных значений, можно было бы ввести скажем пустую строку, которая бы возвращала в таблицу специальное значение. При этом ввод самого пустого значения должен по хорошему быть невалиден. В связи с эти возникает ряд вопросов:

  • Почему SpinBox'ы не умеют QValidator? Вместе установки своего валидатора мне предлагают унаследовать виджет и переопределить в точности те же методы что и валидатора. Это странное поведение вообще хоть чем-нибудь обусловлено или это какая-то традиция?
  • После обработки строки методом fixup она снова подвергается валидации, что всё равно требует внесения специального значения в диапазон валидных. Но даже в таком случае, метод fixup вызывается только после нажатия enter в той или иной ячейки. В случае нажатия tab для перехода к следующей ячейке он не вызывается. В этом есть какой-то смысл и можно ли как-то изменить это поведение?
  • Что ещё можно изменить в QDoubleSpinBox'е чтобы достигнуть поставленной задачи?
★★★★★

Ответ на: комментарий от MikeDM

Именно это я и сделал. Вопрос в том какая часть интерфейса QAbstractSpinBox'а позволит мне добиться поставленного результата.

KblCb ★★★★★
() автор топика
Последнее исправление: KblCb (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.