2012-09-10 9 views
7

Sto tentando di creare un'applicazione Qt che mostri il contenuto di una cartella (cartella "Utenti" in Mac OS). ecco il codice:QFileSystemModel setRootPath

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

ui->listView->setModel(dirModel); 

ho anche tentato con this code

quando faccio funzionare l'applicazione, invece di mostrare il contenuto dei “/ Users” Cartella, mostra l'unità principale (nota: non il contenuto del disco). La cartella esiste e ho anche provato ad usare altre cartelle.

+0

hai tentato il codice della domanda si è collegato o dalla sua risposta? (L'ho appena modificato per renderlo un po 'più chiaro). – alexisdm

+0

Ho atteempted il codice dalla domanda. Proverò subito la risposta – VeryCreativeName

risposta

9

Hai provato a forzare l'indice per mostrare la directory?

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

Questo funziona bene per me:

#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

Viene visualizzato un errore: QAbstractItemView :: setRootIndex non riuscito: l'indice deve essere dal modello attualmente impostato – VeryCreativeName

+0

Vedere la modifica sopra. – count0

5

Questo codice ha funzionato anche per me:

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

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