Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Paramon от Февраль 05, 2015, 14:28



Название: QTableWidget снять выделение
Отправлено: Paramon от Февраль 05, 2015, 14:28
Возможно ли как-то поймать и обработать клик по пустой области? Например если в списке 1 выделенный элемент, то при клике в пустой области элемент остается выделенным, а мне нужно чтобы выделение снималось, как в виндовом SysListView32?


Название: Re: QTableWidget снять выделение
Отправлено: Пантер от Февраль 05, 2015, 14:33
Можно, я разрешаю.
Как пробовал и в чем проблема?


Название: Re: QTableWidget снять выделение
Отправлено: Paramon от Февраль 05, 2015, 14:39
А если без флуда? Пробовал кликать, проблема в том что выделение не снимается.
Вопрос - в каком слоте обрабатывать клик чтобы понять, что клик в пустой области.


Название: Re: QTableWidget снять выделение
Отправлено: Пантер от Февраль 05, 2015, 14:42
Код
C++ (Qt)
void QAbstractItemView::​clicked(const QModelIndex & index)
 
Только index у тебя будет невалидным.


Название: Re: QTableWidget снять выделение
Отправлено: Paramon от Февраль 05, 2015, 14:50
Этот сигнал не приходит если кликать в пустую область.


Название: Re: QTableWidget снять выделение
Отправлено: Пантер от Февраль 05, 2015, 14:56
Хм. Была у меня когда-то такая задача, но не помню уже решения. Вполне возможно, тебе придется вещать ивентФильтр и в нем ловить клики.


Название: Re: QTableWidget снять выделение
Отправлено: kambala от Февраль 05, 2015, 15:39
наверное вьюпорт ловит такие клики и не отдает дальше


Название: Re: QTableWidget снять выделение
Отправлено: Пантер от Февраль 05, 2015, 15:50
https://github.com/panter-dsd/PantherCommander/blob/master/src/qfullview.cpp

Но я тут наследовался от Вьюхи. Вобщем, через ивентФильтр надо.