QFileSystemModel setRootPath

问题描述 投票:10回答:2

我试图创建一个Qt应用程序,显示一个文件夹(在Mac OS中“用户”文件夹)中的内容。下面是代码:

QFileSystemModel *dirModel = new QFileSystemModel;
dirModel->setRootPath("/Users");

ui->listView->setModel(dirModel);

我也用this code尝试

当我运行,而不是示出“/用户”文件夹的内容的应用,它示出了根驱动器(注:该驱动器不是内容)。该文件夹确实存在,我也使用其他文件夹尝试。

c++ macos qt qtreeview qfilesystemmodel
2个回答
14
投票

你尝试迫使指数显示目录?

listView->setRootIndex(dirModel->index("/Users"));

这对我来说工作得很好:

#include <QtGui>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QFileSystemModel model;
    model.setRootPath("/Users");
    QListView view;
    view.setModel(&model);
    view.setRootIndex(model.index("/Users/"));
    view.show();
    return app.exec();
}

7
投票

此代码为我工作,以及:

QFileSystemModel *dirModel = new QFileSystemModel(this);
dirModel->setRootPath("/Users");

ui->listView->setModel(dirModel);
ui->listView->setRootIndex(dirModel->setRootPath("/Users"));
© www.soinside.com 2019 - 2024. All rights reserved.