SetRootPath 与 QT,Mac OS X 上的 QFileSystemModel
Posted
技术标签:
【中文标题】SetRootPath 与 QT,Mac OS X 上的 QFileSystemModel【英文标题】:SetRootPath with QT, QFileSystemModel on Mac OS X 【发布时间】:2012-03-26 18:40:07 【问题描述】:我正在尝试在 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】:QFileSystemModel
始终包含整个文件系统,无论选择的rootPath
是什么。
您可以使用QAbstractItemView::setRootIndex
限制视图本身显示的内容:
QFileSystemModel *fileModel = new QFileSystemModel(this);
ui->treeView->setModel(fileModel);
ui->treeView->setRootIndex(fileModel->setRootPath(rootpath));
【讨论】:
以上是关于SetRootPath 与 QT,Mac OS X 上的 QFileSystemModel的主要内容,如果未能解决你的问题,请参考以下文章