Russian Qt Forum

Qt => Model-View (MV) => Тема начата: izoomer от Май 23, 2007, 00:10



Название: [qt-4.2.0]Вопрос по QItemSelectionModel
Отправлено: izoomer от Май 23, 2007, 00:10
У меня есть QDirModel , есть QListView для отображения списка файлов. Есть три кнопки - ВВЕРХ, ВНИЗ, ВЫДЕЛИТЬ ... стоит свой делеагат на строки .. так вот ... хотел бы что бы можно было при перемещении по строкам выполнять простое перемещение, а при нажатии кнопки выделения выделять строку и переходить на следующую . Устанавливаю selectionMode в Multiselection и выделяются все строки при перемещении по ним кнопками вверх вниз .... странно ... то есть при перемещении по строкам идет сплошное выделение строк .... что делать ?


Название: [qt-4.2.0]Вопрос по QItemSelectionModel
Отправлено: bigirbis от Май 23, 2007, 11:12
Используй QAbstractItemView::ExtendedSelection


Название: [qt-4.2.0]Вопрос по QItemSelectionModel
Отправлено: izoomer от Май 23, 2007, 17:48
Есть такой вот код
Код:

listDirs = new QListView(this);
listDirs->setSelectionMode(QAbstractItemView::ExtendedSelection);
QItemSelectionModel * selectionModel = listDirs->selectionModel();

при нажатии кнопки выделения (требуется что бы выделился текущий итем и переместилось на следующий)
Код:

QItemSelection curSelect = selectionModel->selection();
curSelect.select( listDirs->currentIndex(), listDirs->currentIndex() );
selectionModel->select( curSelect , QItemSelectionModel::Select);
int iRow = listDirs->currentIndex().row();
int curRowCount = modelDirs->rowCount(rootIndex);
if (iRow < curRowCount-1 )
{
listDirs->setCurrentIndex(modelDirs->index( iRow + 1, 0, rootIndex ) );
}
if ( curRowCount-1 == iRow )
{
listDirs->setCurrentIndex(modelDirs->index( 0, 0, rootIndex ) );
}


а просиходит простое перемещение ... что не так ?