QFileSystemModel setRootPath
问题描述:
我正在尝试创建一个显示文件夹(Mac OS中的“用户”文件夹)内容的Qt应用程序。 下面是代码:QFileSystemModel setRootPath
QFileSystemModel *dirModel = new QFileSystemModel;
dirModel->setRootPath("/Users");
ui->listView->setModel(dirModel);
我也使用this code
当运行该应用程序,而不是示出“/用户”的内容试图文件夹,它示出了根驱动器(注:不驱动器的内容)。该文件夹确实存在,我也尝试使用其他文件夹。
答
你试过强迫索引显示目录吗?
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();
}
+0
我收到一个错误:QAbstractItemView :: setRootIndex失败:索引必须来自当前设置的模型 – VeryCreativeName
+0
请参阅上面的编辑。 – count0
答
此代码为我工作,以及:
QFileSystemModel *dirModel = new QFileSystemModel(this);
dirModel->setRootPath("/Users");
ui->listView->setModel(dirModel);
ui->listView->setRootIndex(dirModel->setRootPath("/Users"));
是否试图从您链接或从其回答的代码? (我刚刚编辑它使其更清晰一些)。 – alexisdm
我拒绝了问题中的代码。我将尝试现在的答案 – VeryCreativeName