2012-09-10 49 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")); 
相關問題