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的主要内容,如果未能解决你的问题,请参考以下文章

Mac Os X 中类似 Windows 的 Qt4 菜单栏

在 Mac Os X 上使用 CGEvent 和 Qt

Mac OS X 上的 Qt4Dotnet

Mac OS X 上的 Qt 安装问题

在 Mac OS X 上安装多个版本的 Qt

Mac OS X 上的 Qt 库和源代码安装在哪里?