2009-12-28 35 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 – 2009-12-28 14:49:21

+0

處查看selectedRows()函數謝謝你們! – Keiji 2009-12-28 15:22:16

相關問題