На форме находится QTableView, у него выставлены свойства:
- selectionMode: MultiSelection;
- selectioBehavior: SelectRows.
Пример таблицы:
Выделение строк мышью (порядок считывания индексов) происходит двумя способами (это не я сделал, это так на стандартных классах):
- при выделении строк мышью поштучно (один клик - одна строка), индексы в модель выделения попадают в одном порядке (1, 2, 3, 4, 5, 6);
- если же нажать кнопку мыши, протянуть по строкам и отпустить, то индексы в модель выделения попадут в другом порядке (1, 4, 2, 5, 3, 6). В таком же порядке они туда попадают, если выделить все записи в таблице нажатием на угловую кнопку (cornerButton).
Как можно отличать, каким именно способом произошло выделение? Мне нужно записать выделенные строки в файл, но я могу учесть только один из вариантов. Мне требуется записывать построчно, как при первом варианте (выделено
зелёным цветом).
Саму запись в файл делаю так (опуская подробности):
QModelIndexList indexes = _model->selectedIndexes();
for (int x = 0; x < indexes.count(); x++)
exportFile.write(indexes.at(x).data().toString().toAscii());