QFileSystemModel setRootPath

Ver*_*ame 11 c++ macos qt qtreeview qfilesystemmodel

我正在尝试创建一个Qt应用程序,它显示文件夹的内容(Mac OS中的"Users"文件夹).这是代码:

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

ui->listView->setModel(dirModel);
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用这段代码

当我运行应用程序时,它不显示"/ Users"文件夹的内容,而是显示根驱动器(注意:不是驱动器的内容).该文件夹确实存在,我也尝试使用其他文件夹.

cou*_*nt0 14

您是否尝试强制索引显示目录?

listView->setRootIndex(dirModel->index("/Users"));
Run Code Online (Sandbox Code Playgroud)

这对我来说很好:

#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();
}
Run Code Online (Sandbox Code Playgroud)


Ver*_*ame 7

这段代码对我也很有用:

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

ui->listView->setModel(dirModel);
ui->listView->setRootIndex(dirModel->setRootPath("/Users"));
Run Code Online (Sandbox Code Playgroud)