Редактирование в QTableView |
Здравствуйте, гость ( Вход | Регистрация )
Редактирование в QTableView |
AntonH851 |
26.5.2010, 11:46
Сообщение
#1
|
Студент Группа: Участник Сообщений: 66 Регистрация: 20.2.2010 Из: Шебекино Пользователь №: 1475 Спасибо сказали: 1 раз(а) Репутация: 0 |
Добрый день!
Подскажите пожалуйста, как решить такую проблему: После того как ячейка отредактирована, редактор закрывается и фокус передается на следующую ячейку, находящуюся справа. А мне нужно чтобы фокус оставался на той же ячейке которая редактировалась... Обычно я для этого в делегате пишу такую строку(в методе setModelData):
Но сейчас она не помогает. Может быть это связано с тем, что модель унаследована от 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 |
Может быть это связано с тем, что модель унаследована от QAbstractTableModel и я что-то там не дописал...? нет это связано с делегатом. Это он сигналит, что редактирование завершено и нужно сделать то то.void QAbstractItemDelegate::closeEditor ( QWidget * editor, QAbstractItemDelegate::EndEditHint hint = NoHint ) [signal] попробуй установить QStandardItemDelegat, для представления Пробовал посылать сигнал closeEditor с параметром QAbstractItemDelegate::EditPreviousItem делал своего делегата?
|
|
|
AntonH851 |
26.5.2010, 12:43
Сообщение
#3
|
Студент Группа: Участник Сообщений: 66 Регистрация: 20.2.2010 Из: Шебекино Пользователь №: 1475 Спасибо сказали: 1 раз(а) Репутация: 0 |
Да, сделал делегат, и вроде все написал как обычно.
А если установить QItemDelegate то все работает нормально. Значит в делегате ошибся. Спасибо! |
|
|
Litkevich Yuriy |
26.5.2010, 12:46
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
AntonH851 |
26.5.2010, 15:05
Сообщение
#5
|
Студент Группа: Участник Сообщений: 66 Регистрация: 20.2.2010 Из: Шебекино Пользователь №: 1475 Спасибо сказали: 1 раз(а) Репутация: 0 |
Значит в делегате ошибся. посмотри на параметр, который ты задавал и который идёт по умолчаниюмда, придется отказаться от этой затеи... почему-то и другие делегаты(написанные мною) с этой моделью не хотят дружить... а стандартный работает нормально. вот код делегата:
Сообщение отредактировал AntonH851 - 26.5.2010, 15:06 |
|
|
Litkevich Yuriy |
26.5.2010, 15:19
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
AntonH851 |
26.5.2010, 15:47
Сообщение
#7
|
Студент Группа: Участник Сообщений: 66 Регистрация: 20.2.2010 Из: Шебекино Пользователь №: 1475 Спасибо сказали: 1 раз(а) Репутация: 0 |
|
|
|
Litkevich Yuriy |
26.5.2010, 16:09
Сообщение
#8
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Текстовая версия | Сейчас: 15.1.2025, 13:32 |