QTableView обработка выделения строк

315
01 ноября 2017, 03:35

Совсем запутался с обработкой выделения строк в QTableView... соединяю сигнал изменения текущего item'a:

connect(ui.table->selectionModel(), SIGNAL(currentRowChanged(QModelIndex,QModelIndex)), this, SLOT(onRowChange(QModelIndex,QModelIndex)), Qt::QueuedConnection);

в слоте получаю кол-во выделенных строк так:

int cntSelRow = ui.table->selectionModel()->selectedRows().size()

В итоге если допустим в таблице 5 строк, я выделяю вместе 2,3,4 строки ( cntSelRow = 3 ), а затем выделяю одну 5ю строку, то cntSelRow = 1, НО! Если я выделю не 5ю строку а допустим 3ю, то cntSelRow = 3, почему так? Почему selectionModel()->selectedRows не успевает изменится?

Answer 1

Все я понял, проблема в том что модель сначала посылает сигнал currentRowChanged() когда модель еще не обработала изменения выделения, а только потом selectionChanged().

READ ALSO
Наличие или отсутствие точки с запятой в теле функции

Наличие или отсутствие точки с запятой в теле функции

При определении функции с пустым телом, как правильнее написать её код и зависит ли от этого "логика" самой функции? Если разницы нет, то есть...

252
Шаблоны переменных в C++14

Шаблоны переменных в C++14

Изучая новый стандарт C++, натолкнулся на нововведение «шаблоны переменных»

233
класс property в c++ [требует правки]

класс property в c++ [требует правки]

для чего используеться класс property в c++?

215
С чего начать изучение GUI C++ [требует правки]

С чего начать изучение GUI C++ [требует правки]

Всем приветДовольно много учил язык c++ и работать в консольке уже поднадоело и хочется начать реализовывать небольшие проекты (работать...

246