2012-09-10 15 views
7

Próbuję utworzyć aplikację Qt, która pokazuje zawartość folderu (folder "Użytkownicy" w systemie Mac OS). Oto kod:QFileSystemModel setRootPath

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

ui->listView->setModel(dirModel); 

ja również próbował za pomocą this code

Kiedy uruchomić aplikację, zamiast pokazywać treści „/ Users” Folder, to pokazuje napęd główny (uwaga: nie zawartość dysku). Folder istnieje i próbowałem również użyć innych folderów.

+0

Czy próbować kod z pytania, które powiązane albo z jego odpowiedź? (Po prostu zredagowałem, żeby było trochę jaśniej). – alexisdm

+0

Zignorowałem kod z pytania. Spróbuję teraz odpowiedzieć – VeryCreativeName

Odpowiedz

9

Czy próbowałeś wymusić indeks, aby wyświetlić katalog?

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

Działa to dobrze dla mnie:

#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

Wystąpił błąd: QAbstractItemView :: setRootIndex nie powiodło się: indeks musi pochodzić z aktualnie ustawionego modelu – VeryCreativeName

+0

Patrz powyższa edycja. – count0

5

Ten kod pracował dla mnie, a także:

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

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