2009-12-28 10 views
8

मैं QTreeView उपयोग कर रहा हूँ QDirModel साथ इस तरह:QTreeView का उपयोग कर चयनित आइटमों के बारे में विवरण कैसे प्राप्त करें?

QDirModel * model = new QDirModel; 
ui->treeView->setModel(model); 
ui->treeView->setSelectionMode(QTreeView::ExtendedSelection); 
ui->treeView->setSelectionBehavior(QTreeView::SelectRows); 

यह ठीक काम करता है, फिर भी, मैं नहीं यकीन है कि कैसे फ़ाइलों मैं चयन के बारे में जानकारी पाने के लिए कर रहा हूँ। मुझे यह अब तक मिल गया है:

QModelIndexList list = ui->treeView->selectionModel()->selectedIndexes(); 

लेकिन यह सुनिश्चित नहीं है कि अब क्या करना है, मैं प्रत्येक फ़ाइल का नाम और पूरा पथ प्राप्त करना चाहता हूं। एक उदाहरण वास्तव में महान होगा। धन्यवाद।

उत्तर

8

आप QDirModel की fileInfo विधि का उपयोग कर सकते हैं दी मॉडल सूचकांक वस्तु के लिए फ़ाइल जानकारी पाने के लिए, इस तरह ख़ाली:

QModelIndexList list = ui->treeView->selectionModel()->selectedIndexes(); 
QDirModel* model = (QDirModel*)ui->treeView->model(); 
int row = -1; 
foreach (QModelIndex index, list) 
{ 
    if (index.row()!=row && index.column()==0) 
    { 
     QFileInfo fileInfo = model->fileInfo(index); 
     qDebug() << fileInfo.fileName() << '\n'; 
     row = index.row(); 
    } 
} 

आशा है कि यह मदद करता है, का संबंध

+2

बस इसे करने के लिए मुझे हरा ... एक छोटा सा विवरण: चूंकि चयन एक समय में पंक्तियों के रूप में सेट किया जाता है, इसलिए आप चयनित सूची में से प्रत्येक पंक्ति के पहले कॉलम के मॉडल इंडेक्स की सूची के रूप में चयन सूची प्राप्त कर सकते हैं। Http://doc.trolltech.com/4.5/qitemselectionmodel.html#selectedRows –

+0

पर चयनित पंक्तियां() फ़ंक्शन देखें, दोस्तों! – Keiji

संबंधित मुद्दे