Russian Qt Forum
Ноябрь 24, 2024, 02:55 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTableView и изменение текущего элемента  (Прочитано 5737 раз)
nixman05
Гость
« : Октябрь 17, 2009, 16:03 »

С помощью какого сигнала можно отловить изменение пользователем текущего элемента текущего элемента в tableVeiw?

P.S. B QTableView есть виртуальные слоты currentChanged ( const QModelIndex & current, const QModelIndex & previous ) и currentChanged ( const QModelIndex & current, const QModelIndex & previous ) , т.е создавать потомка класса , в котором определять необходимый сигнал и переопределять эти слоты для вызова сигнала.

Или данный функционал есть в самом QTableView, если есть то где искать?
Записан
Marat(Qt)
Гость
« Ответ #1 : Октябрь 17, 2009, 16:10 »

создайте свой делегат, в нем, в нужном месте сделайте emit имя_сигнала
Записан
nixman05
Гость
« Ответ #2 : Октябрь 17, 2009, 16:26 »

создайте свой делегат, в нем, в нужном месте сделайте emit имя_сигнала

Что и где переопределять?
Записан
Marat(Qt)
Гость
« Ответ #3 : Октябрь 17, 2009, 17:08 »

да собственно ничего, как оказалось, такой сигнал есть в QAbstractItemDelegate:
Код:
void QAbstractItemDelegate::closeEditor
пропробуй задать обычного делегата для tableView и сигнал делегата связывать со своим слотом, если это скучно, то можно создать свой tableView, внутри которого будет жить такой коннект
Записан
nixman05
Гость
« Ответ #4 : Октябрь 17, 2009, 20:33 »

да собственно ничего, как оказалось, такой сигнал есть в QAbstractItemDelegate:
Код:
void QAbstractItemDelegate::closeEditor
пропробуй задать обычного делегата для tableView и сигнал делегата связывать со своим слотом, если это скучно, то можно создать свой tableView, внутри которого будет жить такой коннект

Редактирование элементов не происходит, т.е на представлении стоит флаг NoEditTriggers, будет ли в данном случае выполняться указанный слот для делегата?
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #5 : Октябрь 17, 2009, 21:23 »

не надо создавать делегат - есть сигнал в VIEW->selectionModel() с названием currentChanged ( const QModelIndex &, const QModelIndex & )

вообще обрати внимание что во вьюхе selectionModel нужен именно для этих целей

А делегаты нужны для редактирования элементов (всей таблицы, отдельных строк или столбцов или конкретных ячеек) - никак не для этой цели. Как бы вы юзали делегат - натравили его на все ячейки таблицы? А когда потом потребуется по другому отображать или редактировать элемент (то для чего нужны делегаты действительно) - то что делать?
« Последнее редактирование: Октябрь 17, 2009, 21:26 от break » Записан
nixman05
Гость
« Ответ #6 : Октябрь 18, 2009, 11:31 »

не надо создавать делегат - есть сигнал в VIEW->selectionModel() с названием currentChanged ( const QModelIndex &, const QModelIndex & )

вообще обрати внимание что во вьюхе selectionModel нужен именно для этих целей

А делегаты нужны для редактирования элементов (всей таблицы, отдельных строк или столбцов или конкретных ячеек) - никак не для этой цели. Как бы вы юзали делегат - натравили его на все ячейки таблицы? А когда потом потребуется по другому отображать или редактировать элемент (то для чего нужны делегаты действительно) - то что делать?

Спасибо, все заработало.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 23.