Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Alexandr Az от Декабрь 18, 2006, 13:50



Название: Поведение модели
Отправлено: Alexandr Az от Декабрь 18, 2006, 13:50
Можно ли изменить поведение модели без переопределения view (модель пишется с базового класса QAbstractItemModel) таким образом, чтобы по view низя было бегать, если мы неверно что-то в неё ввели.

Например: QDirModel. Бегаем по каталагам. Меняем имя директории, но не отдельным всплывающим окошком, а как в винде, входим в редактирование, изменяем, ошибаемся, такой каталог уже есть, и нас никуда не пускают, ни в  перёд, ни назад,  пока либо не отменим, либо правильно не введём.......... Аля VCL DataSet - нефиг на следующию запись идти если эта заведома неверна.........

Ну или как народ решал эту проблему?
(Вариант переписывания view понятен, всплывающее окошко для юзвера неприемлимо, чай не каталоги будем переименовывать)


Название: Поведение модели
Отправлено: Tonal от Декабрь 18, 2006, 20:13
Судя по всему, тебе надо переопределить метод QItemDelegate::eventFilter или QAbstractItemDelegate::editorEvent в зависимости от...


Название: Поведение модели
Отправлено: Alexandr Az от Декабрь 19, 2006, 12:43
Не, не подходит. Ни та ни другая............ (Даже близко........) Но всё равно спасибо.

добавлено спустя 43 минуты:

 Хорошо. Поставим вопрос по другому - как тупо во view (да хоть переопределяя его) заблокировать перемещение (выделение)......


Название: Поведение модели
Отправлено: Tonal от Декабрь 19, 2006, 15:59
Кури SelectionModel


Название: Поведение модели
Отправлено: Alexandr Az от Декабрь 19, 2006, 16:28
Та не, всё не то. SelectionModel кхарош конечно для синхронизации вьюх. А так толку то от него мало.