Название: QTableView. Как узнать номер колонки по которой призведен клик при ::SelectRows? Отправлено: xintrea от Март 30, 2016, 15:13 Наткнулся на такую проблему, не знаю как обойти. Если QTableView настроить на выделение строки:
Код: setSelectionBehavior(QAbstractItemView::SelectRows); то тогда метод QModelIndex.column() для табличного курсора всегда будет возвращать 0, независимо от того, в какую колонку кликнул пользователь: Код: QModelIndexList selectItems=selectionModel()->selectedIndexes(); Таким образом получается, что невозможно узнать, по какому столбцу был произведен клик. Или можно узнать номер столбца? А как? Название: Re: QTableView. Как узнать номер колонки по которой призведен клик при ::SelectRows? Отправлено: gil9red от Март 30, 2016, 15:40 Т.е. вы выбрали выделение строки, запросили список выделенных ячеек, из списка всегда берете первую и удивляетесь, что первая выделенная ячейка для строки имеет первый столбец? :)
Попробуйте использовать http://doc.qt.io/qt-4.8/qitemselectionmodel.html#currentIndex Название: Re: QTableView. Как узнать номер колонки по которой призведен клик при ::SelectRows? Отправлено: Igors от Март 31, 2016, 04:30 Таким образом получается, что невозможно узнать, по какому столбцу был произведен клик. Ну никто не запретит повесить фильтр на mousePressed, но неясно где/как Вы собираетесь это использовать. Напр юзер меняет selection с клавы - какая тогда колонка ожидается?Или можно узнать номер столбца? А как? Название: Re: QTableView. Как узнать номер колонки по которой призведен клик при ::SelectRows? Отправлено: xintrea от Март 31, 2016, 12:10 Попробуйте использовать http://doc.qt.io/qt-4.8/qitemselectionmodel.html#currentIndex Это сработало, благодарю. |