0

我有一个标记为“本地数据”的驱动器安装在“/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

当我运行程序时,它总是给我根“/”作为根路径。

我怎样才能做到这一点?

4

1 回答 1

0

该错误与QFileSystemModel. 您还没有为视图设置模型。试试这个(未经测试)。

QFileSystemModel* model = new QFileSystemModel;
model->setRootPath("/media/Local Data");

QTreeView* tree = new QTreeView;
tree->setModel(model);
tree->setRootIndex(tree->model()->index(QDir::currentPath()));
于 2015-11-05T11:12:15.770 回答