Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: mwnuke от Март 16, 2008, 00:09



Название: Считать selection построчно
Отправлено: mwnuke от Март 16, 2008, 00:09
Возникла необходимость считать выделеные ячейки из QTableView построчно.
Assistant предлагает след. метод обращения к выделеным ячейкам:
Код:
QModelIndexList indexes = selectionModel->selectedIndexes();
        QModelIndex index;

        foreach(index, indexes) {
            QString text = QString("(%1,%2)").arg(index.row()).arg(index.column());
            model->setData(index, text);
        }

но он не совсем подходит, т.к. выдает значения по столбцам.
Т.е. есть например выделеные ячейки:
1 2 3
4 5 6
7 8 9

Вышеупоменутый метод считает их так: 1, 4, 7, 2, 5, 8, 3, 6, 9

А мне нужно считать все построчно. Т.е.: 1, 2, 3, 4, 5, 6 ,7, 8,9 и при этом знать, где началась новая строка. =)


Название: Re: Считать selection построчно
Отправлено: EhTemka от Март 18, 2008, 17:52
QModelIndexList indexes = selectionModel->selectedRows();


Название: Re: Считать selection построчно
Отправлено: mwnuke от Март 19, 2008, 08:19
QModelIndexList indexes = selectionModel->selectedRows();
С сожалению данный метод не подходит.
Цитата из документации:
Цитировать
Returns the indexes in the given column for the rows where all columns are selected.
Т.е. возвращаются индексы только тех строк, в которых все стоблцы выделены.

Я так понимаю, что единственный вариант -  это получить selectedIndexes и уже в цикле обрабатывать их с помощью различных условий.


Название: Re: Считать selection построчно
Отправлено: Tonal от Март 19, 2008, 11:10
Отсортируй их построчно - что за беда? :-)