Название: QTableView и изменение текущего элемента Отправлено: 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, если есть то где искать? Название: Re: QTableView и изменение текущего элемента Отправлено: Marat(Qt) от Октябрь 17, 2009, 16:10 создайте свой делегат, в нем, в нужном месте сделайте emit имя_сигнала
Название: Re: QTableView и изменение текущего элемента Отправлено: nixman05 от Октябрь 17, 2009, 16:26 создайте свой делегат, в нем, в нужном месте сделайте emit имя_сигнала Что и где переопределять? Название: Re: QTableView и изменение текущего элемента Отправлено: Marat(Qt) от Октябрь 17, 2009, 17:08 да собственно ничего, как оказалось, такой сигнал есть в QAbstractItemDelegate:
Код: void QAbstractItemDelegate::closeEditor Название: Re: QTableView и изменение текущего элемента Отправлено: nixman05 от Октябрь 17, 2009, 20:33 да собственно ничего, как оказалось, такой сигнал есть в QAbstractItemDelegate: Код: void QAbstractItemDelegate::closeEditor Редактирование элементов не происходит, т.е на представлении стоит флаг NoEditTriggers, будет ли в данном случае выполняться указанный слот для делегата? Название: Re: QTableView и изменение текущего элемента Отправлено: break от Октябрь 17, 2009, 21:23 не надо создавать делегат - есть сигнал в VIEW->selectionModel() с названием currentChanged ( const QModelIndex &, const QModelIndex & )
вообще обрати внимание что во вьюхе selectionModel нужен именно для этих целей А делегаты нужны для редактирования элементов (всей таблицы, отдельных строк или столбцов или конкретных ячеек) - никак не для этой цели. Как бы вы юзали делегат - натравили его на все ячейки таблицы? А когда потом потребуется по другому отображать или редактировать элемент (то для чего нужны делегаты действительно) - то что делать? Название: Re: QTableView и изменение текущего элемента Отправлено: nixman05 от Октябрь 18, 2009, 11:31 не надо создавать делегат - есть сигнал в VIEW->selectionModel() с названием currentChanged ( const QModelIndex &, const QModelIndex & ) вообще обрати внимание что во вьюхе selectionModel нужен именно для этих целей А делегаты нужны для редактирования элементов (всей таблицы, отдельных строк или столбцов или конкретных ячеек) - никак не для этой цели. Как бы вы юзали делегат - натравили его на все ячейки таблицы? А когда потом потребуется по другому отображать или редактировать элемент (то для чего нужны делегаты действительно) - то что делать? Спасибо, все заработало. |