QFileSystemModel如何将RootPath设置到linux上的另一个驱动器
Posted
技术标签:
【中文标题】QFileSystemModel如何将RootPath设置到linux上的另一个驱动器【英文标题】:How QFileSystemModel setRootPath to another drive on linux 【发布时间】:2015-11-05 10:17:27 【问题描述】:我有一个标记为“本地数据”的驱动器安装在“/media/Local Data”。 而我的程序目录也在“/media/Local Data/Programming”中。 我想将“本地数据”设置为 QFileSystemModel 的根路径。 我找不到办法。
这是我的代码:
QFileSystemModel* model = new QFileSystemModel;
model->setRootPath("/media/Local Data");
QTreeView tree;
tree.setRootIndex(model->index("/media/Local Data");
tree.setModel(model);
qDebug() << QDir::currentPath();
// "/media/Local Data/Files/Programming/C++/build-FileSystemModel-Desktop_Qt_5_5_1_GCC_64bit-Debug"
tree.setMinimumSize(900,500);
tree.show();
我收到错误QAbstractItemView::setRootIndex failed : index must be from the currently set model
。
当我运行程序时,它总是给我根“/”作为根路径。
我怎样才能做到这一点?
【问题讨论】:
【参考方案1】:该错误与QFileSystemModel
无关。您还没有为视图设置模型。试试这个(未经测试)。
QFileSystemModel* model = new QFileSystemModel;
model->setRootPath("/media/Local Data");
QTreeView* tree = new QTreeView;
tree->setModel(model);
tree->setRootIndex(tree->model()->index(QDir::currentPath()));
【讨论】:
哦。我确实完成了我的问题中没有显示的 setModel 。我会编辑它。 我发现我做错了什么。setModel()
需要在setRootIndex()
之前完成以上是关于QFileSystemModel如何将RootPath设置到linux上的另一个驱动器的主要内容,如果未能解决你的问题,请参考以下文章
如何删除 QFileSystemModel 中修改的大小、类型、日期?
如何按文件名过滤 QFileSystemModel 的文件列表?
如何在 Qt 中使用 QFileSystemModel 设置文本颜色 QTableView?
QFileSystemModel中通过flags函数反应代码的层级思考