2009-12-28 106 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

相关问题