【问题标题】:How QFileSystemModel setRootPath to another drive on linuxQFileSystemModel如何将RootPath设置到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

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

我怎样才能做到这一点?

【问题讨论】:

    标签: c++ linux qt qfilesystemmodel


    【解决方案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()之前完成
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 2016-04-15
    • 2012-12-11
    • 2011-08-26
    • 1970-01-01
    相关资源
    最近更新 更多