2009-12-28 2 views
8

:이 잘 작동QTreeView를 사용하여 선택한 항목에 대한 세부 정보를 얻는 방법은 무엇입니까? 나는이 같은 QDirModel와 QTreeView을 사용하고

QDirModel * model = new QDirModel; 
ui->treeView->setModel(model); 
ui->treeView->setSelectionMode(QTreeView::ExtendedSelection); 
ui->treeView->setSelectionBehavior(QTreeView::SelectRows); 

그러나, 내가 선택한 파일에 대한 세부 사항을 얻는 방법을 모르겠어요. 지금까지이있어 :

QModelIndexList list = ui->treeView->selectionModel()->selectedIndexes(); 

하지만 확실히 지금 무엇을, 나는 각 파일의 이름과 전체 경로를 좀하고 싶습니다. 좋은 예가 될 것입니다. 고맙습니다.

답변

8

당신이 주어진 모델 인덱스 오브젝트에 대한 파일 정보를 얻기 위해 QDirModel의 fileInfo 방법을 사용할 수 있습니다, 다음과 같이 매끄러운 :이 도움이

QModelIndexList list = ui->treeView->selectionModel()->selectedIndexes(); 
QDirModel* model = (QDirModel*)ui->treeView->model(); 
int row = -1; 
foreach (QModelIndex index, list) 
{ 
    if (index.row()!=row && index.column()==0) 
    { 
     QFileInfo fileInfo = model->fileInfo(index); 
     qDebug() << fileInfo.fileName() << '\n'; 
     row = index.row(); 
    } 
} 

희망,

+2

그냥 그것에 나를 이길에 관하여 ... 작은 세부 사항 : 선택 항목이 한 번에 한 행씩 설정되므로 선택 목록을 선택한 모든 색인 대신 각 행의 첫 번째 열의 모델 색인 목록으로 가져올 수 있습니다. http://doc.trolltech.com/4.5/qitemselectionmodel.html#selectedRows에서 selectedRows() 함수를 참조하십시오. –

+0

감사합니다. – Keiji

관련 문제