2012-09-10 23 views
7

Bir klasörün içeriğini gösteren bir Qt uygulaması oluşturmaya çalışıyorum (Mac OS'de “Kullanıcılar” klasörü). İşte kodu: Ben de ben uygulamayı çalıştırdığınızda this codeQFileSystemModel setRootPath

kullanılarak yerine “/ Users” içeriğini gösteren teşebbüs

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

ui->listView->setModel(dirModel); 

Klasör, bu (not kök sürücüyü gösterir: değil sürücünün içeriği). Klasör var ve diğer klasörleri kullanmayı denedim.

+0

Eğer bağlantılı veya onun cevabını, söz kod girişimi mi? (Sadece onu daha net hale getirmek için düzenledim). – alexisdm

+0

Sorunun kodunu girdim. Yanıtı şimdi denerim – VeryCreativeName

cevap

9

Dizini dizini göstermeye zorlamayı denediniz mi?

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

Bu benim için çalışıyor:

#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

Bir hata alıyorum: QAbstractItemView :: setRootIndex başarısız oldu: index şu anki ayarlanmış modelden olmalıdır – VeryCreativeName

+0

Yukarıdaki düzenlemeye bakın. – count0

5

Bu kod benim için de çalıştı:

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

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