2009-12-28 13 views
8

Używam QTreeView z QDirModel tak:Jak uzyskać szczegółowe informacje na temat wybranych przedmiotów za pomocą QTreeView?

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

Działa to dobrze, jednak nie jestem pewien, w jaki sposób, aby uzyskać szczegółowe informacje na temat plików wybiorę. Mam to do tej pory:

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

Ale nie jestem pewien, co teraz zrobić, chciałbym uzyskać nazwę każdego pliku i pełną ścieżkę. Przykład byłby naprawdę świetny. Dziękuję Ci.

Odpowiedz

8

można użyć fileInfo sposobu QDirModel aby uzyskać szczegóły pliku dla danego obiektu indeksu model czymś tak:

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

nadzieję, że to pomaga, chodzi

+2

Wystarczy pokonać mnie do niego ... Mały szczegół: ponieważ wybór jest ustawiony na wiersze na raz, możesz otrzymać listę wyboru jako listę indeksu modelu pierwszej kolumny każdego wiersza, zamiast wszystkich wybranych indeksów. Zobacz funkcję selectedRows() pod adresem http://doc.trolltech.com/4.5/qitemselectionmodel.html#selectedRows –

+0

Dziękuję, chłopaki! – Keiji

Powiązane problemy