Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: aliks-os от Октябрь 30, 2010, 17:47



Название: QWidgetTable - запрет выхода из редактирования
Отправлено: aliks-os от Октябрь 30, 2010, 17:47
Пользователь вносит в ячейку данные, я их проверяю в событии itemChanged(). Как мне правильно сделать, если данные не отвечают определенным требованиям, чтобы ячейка оставалась по прежнему редактируемой


Название: Re: QWidgetTable - запрет выхода из редактирования
Отправлено: kibsoft от Октябрь 30, 2010, 19:42
Скорее всего нужно переопределить:
Цитировать
void QAbstractItemView::closeEditor ( QWidget * editor, QAbstractItemDelegate::EndEditHint hint )   [virtual protected slot]
у QTableWidget. И там смотреть удовлетворяют требованиям данные или нет.

Пример:
Код:
if (!data.isValid)
    return;
else
    QAbstractItemView::closeEditor(editor, hint);
Сам не пробовал, но должно быть все ok.


Название: Re: QWidgetTable - запрет выхода из редактирования
Отправлено: aliks-os от Октябрь 30, 2010, 21:06
спасибо, но выкрутил немного по другому, я с таблицей использую свой делегат, в этом делегате я переопределил closeEditor и все получилось


Название: Re: QWidgetTable - запрет выхода из редактирования
Отправлено: kibsoft от Октябрь 30, 2010, 23:02
Видимо ты сделал как я написал и переопределил closeEditor в QTableWidget, т.к. в делегате метода closeEditor() нет, есть только сигнал (его ты никак не переопределишь :) ).