2012-03-26 16 views
1

動作しているqtにファイルエクスプローラを作成しようとしていますが、ルートパスを設定できません。私はMac OS Xを実行していて、どのルートパスを入れてもツリービューは常にMac OS X上のQT、QFileSystemModelでSetRootPath

"/"の先頭フォルダから始まります。

私はこれを理解しようと2時間を費やしました。

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(); 
} 

それが最初でそれをやっているように思えるし、その後トップに戻る自身をリセット「/」

答えて

1

QFileSystemModelは関係なく、常に選ばれたrootPathの、全体のファイルシステムが含まれています。

あなたはQAbstractItemView::setRootIndexとビュー自体に示されているものを制限することができます。

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