2015-11-05 61 views
0

我有一个驱动器标记为“本地数据”安装在“/媒体/本地数据”。 而我的程序目录也在“/ media/Local Data/Programming”中。 我想将“本地数据”设置为QFileSystemModel的根路径。 我找不到办法。如何QFileSystemModel setRootPath到Linux上的另一个驱动器

这里是我的代码:

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

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

我该如何做到这一点?

回答

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())); 
+0

哦。我做了setModel,但没有显示在我的问题中。我会编辑它。 – tom

+0

我发现我做错了什么。 'setModel()'需要在'setRootIndex()'之前完成 – tom