Установка валидатора на tableModel qt - PullRequest
1 голос
/ 21 декабря 2011

Есть ли способ установить валидатор (т.е. регулярное выражение) для TableMOdel или некоторых ячеек в этой модели?

Ответы [ 2 ]

1 голос
/ 21 декабря 2011

Что вам нужно сделать, это установить пользовательский делегат для рисования определенного столбца, этот делегат должен нарисовать выбранный виджет, и на этом виджете установить валидатор, используя setValidator (...)

Валидатор можетбыть пользовательским валидатором (класс, наследующий от QValidator) или одним из существующих.

Проверьте эту ссылку для хорошего описания настройки делегата пользовательского элемента.http://qtwiki.org/Creating_QTableView_TextEditDelegate

И это для валидатора http://www.qtcentre.org/threads/39310-Some-QComboBox-and-custom-QValidator-background

0 голосов
/ 21 декабря 2011

В системе модель / представление нет встроенной поддержки для проверки, но это не составит большого труда.

В QAbstractItemModel::setData вам нужно будет подтвердить ввод и вернуть false, если он недействителен, сохранить результат проверки где-нибудь.

В [QAbstractItemModel::data теперь вы можете вернуть другой цвет для роли Qt::BackgroundRole, чтобы указать, что что-то не так.

Кроме того, вы можете реализовать пользовательский QAbstractItemDelegate, что позволит вам создать проверяющий редактор, который сможет предоставить больше отзывов пользователю.

Затем делегат будет установлен на представление с одной из функций QAbstractItemView::setItemDelegate или setItemDelegateFor*.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...