QT 4.x 를 기준으로 잠시 설명하겠습니다.
QT의 ListView가 Columns(열)을 지원해주지 않아서 다들 TreeWidget, TableWidget을
사용하시리라 생각듭니다.
저 또한 그러한데, 이상하게 제 컴퓨터에서는 TreeWidget보다는 TableWidget이 좀더
좋은 성능을 발휘하더군요. 무튼 그래서 전 TableWidget을 사용하고 있는데
다중 선택(Extended Mode)에서 선택된 행(Row)을 얻어오려면
selectionModel() 을 사용해서 선택 모델(QItemSelectionModel)을 얻어온 후
QItemSelectionModel::selectedRows()를 사용하면 QModelIndexList를
획득할 수 있습니다.
말이 많았는데 예제 소스를 아래 보시면 이해가 쉽습니다.
QModelIndexList entryList;
QModelIndex item;
entryList = ui.CacheTableWidget->selectionModel()->selectedRows();
item = entryList.takeFirst();
int index = item.row();
이런식으로 사용가능하다는 거죠..
참고로 QTableWidget에 selectedIndexes() 메소드도 존재하는데 이는 보호 돼 있어서
사용하지 못하네요.
(
http://lists.trolltech.com/qt4-preview-feedback/2005-08/thread00108-0.html)