QFileSystemModel setRootPath

折月煮酒 提交于 2019-12-04 17:52:15

问题


I am attempting to create a Qt application which shows the contents of a folder (“Users” folder in Mac OS). Here is the code:

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

ui->listView->setModel(dirModel);

I also attempted using this code

When i run the application, instead of showing the content of the “/Users” Folder, it shows the root drive (note: not the content of the drive). The folder does exist and i also tried using other folders.


回答1:


Did you try forcing the index to show the directory ?

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

This works fine for me:

#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();
}



回答2:


This code has worked for me as well:

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

ui->listView->setModel(dirModel);
ui->listView->setRootIndex(dirModel->setRootPath("/Users"));


来源:https://stackoverflow.com/questions/12357756/qfilesystemmodel-setrootpath

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!