2012-09-10 51 views
7

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

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

ui->listView->setModel(dirModel); 

我也使用this code

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

+0

是否试图从您链接或从其回答的代码? (我刚刚编辑它使其更清晰一些)。 – alexisdm

+0

我拒绝了问题中的代码。我将尝试现在的答案 – VeryCreativeName

回答

9

你试过强迫索引显示目录吗?

 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

5

此代码为我工作,以及:

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

ui->listView->setModel(dirModel); 
ui->listView->setRootIndex(dirModel->setRootPath("/Users")); 
相关问题