我正在尝试在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();
}
似乎它首先正在执行此操作,然后将自身重置为顶部“/”
答案 0 :(得分:1)
QFileSystemModel
始终包含整个文件系统,无论选择的rootPath
如何。
您可以使用QAbstractItemView::setRootIndex
限制视图中显示的内容:
QFileSystemModel *fileModel = new QFileSystemModel(this);
ui->treeView->setModel(fileModel);
ui->treeView->setRootIndex(fileModel->setRootPath(rootpath));