LINUX.ORG.RU

QTableView. Как узнать номер колонки, по которой призведен клик при QAbstractItemView::SelectRows ?

 ,


0

1

Наткнулся на такую проблему, не знаю как обойти. Если QTableView настроить на выделение строки:

setSelectionBehavior(QAbstractItemView::SelectRows);


то тогда метод QModelIndex.column() для табличного курсора всегда будет возвращать 0, независимо от того, в какую колонку кликнул пользователь:

QModelIndexList selectItems=selectionModel()->selectedIndexes();
QModelIndex index=selectItems.at(0);
qDebug() << "Click on column: " << index.column();

Click on column: 0


Таким образом получается, что невозможно узнать, по какому столбцу был произведен клик.

Или можно узнать номер столбца? А как?

★★★★★

Ответ на: комментарий от XMs

Конечно валидные. row() выдает правильный.

И если убрать настройку QAbstractItemView::SelectRows то column() выводятся правильные.

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Я туплю. У тебя же возвращается QList<QModelIndex>, и column у индексов будет 0–columnCount()−1. При клике меняется currentIndex(), запроси его

XMs ★★★★★
()

Как уже сказали выше, тебе нужен currentIndex(). Также, можно переопределить какой-нибудь mouseReleaseEvent() и в нем запросить QTreeView::indexAt() используя текущие координаты мыши, но это уже изврат.

m0rph ★★★★★
()

void QAbstractItemView::clicked(const QModelIndex & index) [signal]

TC, прежде чем задавать вопросы по какому то классу в Qt. Надо внимательно перечитать список всех мемберов этого класса в документации. Есть там такой гипелинк «List of all members, including inherited members». Помогает при 80% вопросов. Сейчас тебе надо понять что такое QModelIndex который передаётся в сигнал и вопрос будет закрыт. Дополнительно у QTableView есть void QAbstractItemView::doubleClicked(const QModelIndex & index) [signal]

khenty
()
Ответ на: комментарий от Xintrea

Сначала надо выучить англицкий

На самом минимальном уровне.

ведь на русском по Qt документации нет.

http://doc.crossplatform.ru/qt/

Правда сейчас она оффлайн, но это скорее всего просто временно.

anonymous
()
Ответ на: комментарий от anonymous

Она очень часто оффлайн, и там переведено в лучшем случае процента 2-3 от основной.

Xintrea ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.