Название: Как выйти из режима редактирования ячейки Отправлено: Evgeniya от Февраля 12, 2010, 14:14 Доброго всем времени суток...
Есть таблица в которой на некоторые столбцы установлен делегат... И вот с помощью слота void edit ( const QModelIndex & index ) я могу войти прогрммно в режим редактирования ячейки... А с есть такой слот,чтобы я смогла выйти из режима редактирования ячейки.. Ведь по умолчания выйти из режима редактирования я могу только при выделении следующей ячейке именно мышкой.. Я например,хочу сделать так...как обычно при нажатии на клавиатуре стрелочки вниз выделяются следующие за текущей строчки, а мне надо чтобы при нажатии стрелочки вниз выходил из режима редактирования предыдущий элемент и заходил следующий Название: Re: Как выйти из режима редактирования ячейки Отправлено: lit-uriy от Февраля 12, 2010, 14:20 closePersistentEditor
Подойдёт? Название: Re: Как выйти из режима редактирования ячейки Отправлено: Evgeniya от Февраля 12, 2010, 14:42 Он выходит из режима редактирования,только данные не сохранят >:(
Название: Re: Как выйти из режима редактирования ячейки Отправлено: Evgeniya от Февраля 12, 2010, 15:07 Делаю update(const QModelIndex & index ), а потом closePersistentEditor все-равно не помогает...он выходит из режима редактирования, а данные не сохраняет
Название: Re: Как выйти из режима редактирования ячейки Отправлено: lit-uriy от Февраля 12, 2010, 15:14 попробуй тогда просто менять текущий индекс, setCurrentIndex
можно например так: selectionModel()->setCurrentIndex(index, QItemSelectionModel::NoUpdate); Название: Re: Как выйти из режима редактирования ячейки Отправлено: SABROG от Февраля 12, 2010, 21:56 Нужно переопределить pressKeyEvent у виджета который выступает в роли editor'а итема, при нажатии на стрелочки клавиатуры слать какой-нибудь сигнал. Сигнал подвязываешь к делегату, а там уже выполняешь эти методы:
Код
Затем наследуешься от вьюхи и переопределяешь слот: void QAbstractItemView::closeEditor ( QWidget * editor, QAbstractItemDelegate::EndEditHint hint ) [virtual protected slot] Тут уже перемещаешь редактирование в нужное место. Единственное надо добавить в namespace EndEditHint 4 своих значения, чтобы перемещаться на любую сторону света. Название: Re: Как выйти из режима редактирования ячейки Отправлено: Evgeniya от Февраля 16, 2010, 15:58 SABROG,спасибо за ответ!!!Очень полезный...правда я теперь по другому хочу сделать..я хочу чтобы при нажатии Tab у меня редактор скакал по порядку по всему столбцу таблицы и вызывался бы редактор.. Но когда заканчивается редактирование предыдущего элемента,я обновляю данные модели методом setQuery(),то текущие индексы модели обнуляются и всегда начинается с редактирования нулевого элемента... Если я не обновляю данные модели,то все нормально происходит ... при нажатии на Tab все редактируется,только данные не обновляются. Как же можно решить данную ситуацию?
|