Russian Qt Forum

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



Название: Активный делегат без openPersistentEditor и груды перерисовки
Отправлено: Barmaglodd от Декабрь 19, 2011, 12:21
Хочу "странного" ;)
Нужен делегат для таблички, на котором расположены несколько виджетов (кнопочки там всякие, чекбоксы), и хочется, чтобы это всё было постоянно активным, т.е. чтобы не жамкать 2 раза мышкой для перехода в режим редактирования.
Пока использую в разных ситуациях 2 варианта (костыля):
1. Рисуем и обрабатываем все события от клавы и мыши в наследнике QItemDelegate.
      Минус решения в большом количестве кода, да и всю анимацию контролов воспроизводить лень.
2. Вызываем на каждый чих openPersistentEditor.
      Как-то "неэлегантно" получается, и на больших таблицах можно море памяти скушать.
Может кто-то предложит вариант без недостатков? :)


Название: Re: Активный делегат без openPersistentEditor и груды перерисовки
Отправлено: GreatSnake от Декабрь 19, 2011, 12:26
1. Рисуем и обрабатываем все события от клавы и мыши в наследнике QItemDelegate.
Забудь про QItemDelegate. Используй вместо него QStyledItemDelegate.
Это
Код
C++ (Qt)
QAbstractItemView::setEditTriggers( QAbstractItemView::CurrentChanged | QAbstractItemView::SelectedClicked )
пробовал?


Название: Re: Активный делегат без openPersistentEditor и груды перерисовки
Отправлено: Barmaglodd от Декабрь 19, 2011, 12:29
И как это решит мою проблему?


Название: Re: Активный делегат без openPersistentEditor и груды перерисовки
Отправлено: GreatSnake от Декабрь 19, 2011, 12:30
И как это решит мою проблему?
Это решит другие проблемы, если остановишься на п.1.


Название: Re: Активный делегат без openPersistentEditor и груды перерисовки
Отправлено: Barmaglodd от Декабрь 19, 2011, 12:38
Это
Код
C++ (Qt)
QAbstractItemView::setEditTriggers( QAbstractItemView::CurrentChanged | QAbstractItemView::SelectedClicked )
пробовал?
Ага, жамкаем мышкой, ячейка получает фокус, делегат появляется ;)


Название: Re: Активный делегат без openPersistentEditor и груды перерисовки
Отправлено: Barmaglodd от Декабрь 19, 2011, 12:40
Это решит другие проблемы, если остановишься на п.1.
Т.е. у меня магическим образом буду работать hover-эффекты для кнопок? Без ручной пляски с событиями от мыши?