crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Редактирование в QTableView
AntonH851
  опции профиля:
сообщение 26.5.2010, 11:46
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 66
Регистрация: 20.2.2010
Из: Шебекино
Пользователь №: 1475

Спасибо сказали: 1 раз(а)




Репутация:   0  


Добрый день!
Подскажите пожалуйста, как решить такую проблему:
После того как ячейка отредактирована, редактор закрывается и фокус передается на следующую ячейку, находящуюся справа.
А мне нужно чтобы фокус оставался на той же ячейке которая редактировалась...
Обычно я для этого в делегате пишу такую строку(в методе setModelData):
((QTableView *)this->parent())->setCurrentIndex(index);


Но сейчас она не помогает.
Может быть это связано с тем, что модель унаследована от QAbstractTableModel и я что-то там не дописал...?
Пробовал посылать сигнал closeEditor с параметром QAbstractItemDelegate::EditPreviousItem, но тогда вообще что-то непонятное происходит, фокус-то на месте остается, но делегат не закрывает редактор(или закрывает и тут же открывает).

и пробовал обрабатывать сигнал dataChanged модели, тоже не помогает. Я устанавливаю нужный мне индекс, а потом почему то все время текущий индекс смещается вправо на одни столбец... а где это выключить непонятно...

Как еще такое поведение можно изменить уже не знаю...

Сообщение отредактировал AntonH851 - 26.5.2010, 12:10
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 26.5.2010, 12:23
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(AntonH851 @ 26.5.2010, 15:46) *
Может быть это связано с тем, что модель унаследована от QAbstractTableModel и я что-то там не дописал...?
нет это связано с делегатом. Это он сигналит, что редактирование завершено и нужно сделать то то.
void QAbstractItemDelegate::closeEditor ( QWidget * editor, QAbstractItemDelegate::EndEditHint hint = NoHint ) [signal]

попробуй установить QStandardItemDelegat, для представления

Цитата(AntonH851 @ 26.5.2010, 15:46) *
Пробовал посылать сигнал closeEditor с параметром QAbstractItemDelegate::EditPreviousItem
делал своего делегата?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 15.1.2025, 16:51