在Mac OS X上使用QT,QFileSystemModel的SetRootPath

时间:2012-03-26 18:40:08

标签: qt

我正在尝试在qt中创建一个文件资源管理器,但是我无法设置根路径。我正在运行Mac OS X,无论我放入什么根路径,treeView始终以

开头

“/”顶部文件夹。

我花了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 个答案:

答案 0 :(得分:1)

QFileSystemModel始终包含整个文件系统,无论选择的rootPath如何。

您可以使用QAbstractItemView::setRootIndex限制视图中显示的内容:

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