2012-03-26 12 views
1

Ich versuche, einen Datei-Explorer in Qt zu erstellen, der funktioniert, aber ich kann den Root-Pfad nicht festlegen. Ich benutze Mac OS X und egal welchen Root-Pfad ich einfüge, der TreeView beginnt immer mitSetRootPath mit QT, QFileSystemModel unter Mac OS X

"/" der oberste Ordner.

Ich habe 2 Stunden damit verbracht, das herauszufinden.

if(QDir("SavedOutlines").exists()){ 
    fileModel = new QFileSystemModel; 
    QDir dir; 
    QString rootpath = dir.absolutePath() + "/SavedOutlines/"; 
    //QString path = "/Users/"; 
    fileModel = new QFileSystemModel(this); 

    QModelIndex idx = fileModel->setRootPath(rootpath); 
    ui->treeView->setCurrentIndex(idx); 
    ui->treeView->setModel(fileModel); 
    ui->treeView->show(); 
} 

Es scheint, wie es auf den ersten zu tun und sich dann wieder nach oben Zurücksetzen „/“

Antwort

1

QFileSystemModel enthält immer das gesamte Dateisystem, unabhängig von der rootPath, die gewählt wurde.

Sie können begrenzen, was mit QAbstractItemView::setRootIndex in der Ansicht selbst dargestellt:

QFileSystemModel *fileModel = new QFileSystemModel(this); 
ui->treeView->setModel(fileModel); 
ui->treeView->setRootIndex(fileModel->setRootPath(rootpath));