2009-12-28 10 views
8

Ich verwende QTreeView mit QDirModel wie folgt aus:Wie bekomme ich Details über die ausgewählten Artikel mit QTreeView?

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

Das funktioniert gut, aber ich bin nicht sicher, wie die Details über die Dateien zu bekommen ich wählen. Ich habe dies so weit gekommen:

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

aber nicht sicher, was jetzt tun, ich mag jede Datei des Namen und die vollständigen Pfad erhalten. Ein Beispiel wäre wirklich großartig. Vielen Dank.

Antwort

8

Sie fileInfo Methode der QDirModel verwenden können Dateidetails für den gegebenen Modellindex-Objekt zu erhalten, smth wie folgt aus:

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(); 
    } 
} 

hoffe, das hilft, sieht

+2

es schlagen Sie mir ... Ein kleines Detail: Da die Auswahl auf Zeilen gesetzt ist, können Sie die Auswahlliste als Liste des Modellindex der ersten Spalte jeder Zeile statt aller ausgewählten Indizes abrufen. Siehe die Funktion selectedRows() unter http://doc.trolltech.com/4.5/qitemselectionmodel.html#selectedRows –

+0

Vielen Dank, Leute! – Keiji