2009-12-28 24 views
8

estoy usando QTreeView con QDirModel así:¿Cómo obtener detalles sobre los elementos seleccionados con QTreeView?

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

Esto funciona bien, sin embargo, no estoy seguro de cómo obtener los detalles acerca de los archivos que seleccione. Tengo esto hasta ahora:

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

pero no está seguro de qué hacer ahora, me gustaría obtener el nombre de cada archivo y la ruta completa. Un ejemplo sería realmente genial. Gracias.

Respuesta

8

puede utilizar fileInfo método de la QDirModel para obtener detalles de los archivos para el objeto de índice determinado modelo, SMTH así:

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

esperanza que esta ayuda, que se refiere a

+2

Sólo se me adelantó ... Un pequeño detalle: dado que la selección se establece en filas a la vez, puede obtener la lista de selección como una lista del índice del modelo de la primera columna de cada fila, en lugar de todos los índices seleccionados. Vea la función selectedRows() en http://doc.trolltech.com/4.5/qitemselectionmodel.html#selectedRows –

+0

¡Gracias, muchachos! – Keiji

Cuestiones relacionadas