Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Nemo2000 от Март 26, 2011, 19:12



Название: [РЕШЕНО]Cнятие фокуса(??) с итема QTreeView
Отправлено: Nemo2000 от Март 26, 2011, 19:12
Проблема в следующем.
Имеется QTreeView, в editTriggers() стоит флажок QAbstractItemView::CurrentChanged, тоесть редактирование ячейки происходит при одинарном нажатии мышки на итем.
После редактирования, если подтвердить ввод нажатием Enter'а, делегат естественно пропадает, но итем остаётся всё ещё выделен серым прямоугольником в точечку...из-за этого последующее редактирование ячейки происходит не по одинарному клику, а по двойному,тройному..как когда.
Тоже самое происходит если во время редатирования кликнуть где-нибудь за пределами QTreeView.

Пробовал по-разному очищать выделение и фокус после CommitData, но не помагает

вот..что можно сделать?)


Название: Re: Cнятие фокуса(??) с итема QTreeView
Отправлено: blood_shadow от Март 26, 2011, 19:52
Проблема в следующем.
Имеется QTreeView, в editTriggers() стоит флажок QAbstractItemView::CurrentChanged, тоесть редактирование ячейки происходит при одинарном нажатии мышки на итем.
После редактирования, если подтвердить ввод нажатием Enter'а, делегат естественно пропадает, но итем остаётся всё ещё выделен серым прямоугольником в точечку...из-за этого последующее редактирование ячейки происходит не по одинарному клику, а по двойному,тройному..как когда.
Тоже самое происходит если во время редатирования кликнуть где-нибудь за пределами QTreeView.

Пробовал по-разному очищать выделение и фокус после CommitData, но не помагает

вот..что можно сделать?)
если просто не делать выделение, можно попробовать -
Код:
selectionModel()->setCurrentIndex(index, QItemSelectionModel::NoUpdate);
или же просто очистить модель выделения, посмотри QItemSelectionModel


Название: Re: Cнятие фокуса(??) с итема QTreeView
Отправлено: Nemo2000 от Март 27, 2011, 21:00
selectionModel()->clear() решило проблему :)