2012-09-10 18 views
7

मैं एक क्यूटी एप्लिकेशन बनाने का प्रयास कर रहा हूं जो किसी फ़ोल्डर की सामग्री (मैक ओएस में "उपयोगकर्ता" फ़ोल्डर) दिखाता है। यहाँ कोड है: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"));