2012-09-10 11 views
7

Estoy intentando crear una aplicación Qt que muestre el contenido de una carpeta (carpeta "Usuarios" en Mac OS). Aquí está el código:QFileSystemModel setRootPath

QFileSystemModel *dirModel = new QFileSystemModel; 
dirModel->setRootPath("/Users"); 

ui->listView->setModel(dirModel); 

También he tratado usando this code

cuando corro la aplicación, en lugar de mostrar el contenido de las “/ Users” carpeta, que muestra la unidad de raíz (nota: no el contenido del disco). La carpeta existe y también intenté usar otras carpetas.

+0

¿Intentó el código de la cuestión se ha vinculado o de su respuesta? (Acabo de editarlo para que sea un poco más claro). – alexisdm

+0

Respondí el código de la Pregunta. Voy a intentar la respuesta ahora – VeryCreativeName

Respuesta

9

¿Intentó forzar el índice para mostrar el directorio?

 listView->setRootIndex(dirModel->index("/Users")); 

Esto funciona muy bien para mí:

#include <QtGui> 

int main(int argc, char *argv[]) 
{ 
QApplication app(argc, argv); 
QFileSystemModel model; 
model.setRootPath("/Users"); 
QListView view; 
view.setModel(&model); 
view.setRootIndex(model.index("/Users/")); 
view.show(); 
return app.exec(); 
} 
+0

Me sale un error: QAbstractItemView :: setRootIndex falló: el índice debe ser del modelo actualmente establecido – VeryCreativeName

+0

Ver la edición anterior. – count0

5

Este código ha trabajado para mí también:

QFileSystemModel *dirModel = new QFileSystemModel(this); 
dirModel->setRootPath("/Users"); 

ui->listView->setModel(dirModel); 
ui->listView->setRootIndex(dirModel->setRootPath("/Users"));