2010-05-06 20 views
14

मैं QTableWidget पर डेटा कैसे दिखा सकता हूं और हेडर के साथ डेटा पढ़ सकता हूं?मैं QTableWidget पर डेटा कैसे दिखा सकता हूं और हेडर के साथ डेटा पढ़ सकता हूं?

+2

में मदद करता है @ayla उपयोग क्यूटी डॉक्स: http://doc.trolltech.com/4.6/qtablewidget.html#details – mosg

+0

क्या आप का प्रयास किया, क्या डॉक्स आप पढ़ गए थे? शून्य प्रयास के साथ प्रश्न पूछने के लिए मैन 2010 एसओ में सलाद दिन रहा होगा। :) – neuronet

उत्तर

21

1)। इस उदाहरण कोड के साथ तालिका बनाएं:

filesTable = new QTableWidget(0, 2); 
QStringList labels; 
labels << tr("File Name") << tr("Size"); 
filesTable->setHorizontalHeaderLabels(labels); 
filesTable->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch); 
filesTable->verticalHeader()->hide(); 
filesTable->setShowGrid(false); 

2)। पंक्ति जोड़ें:

int row = filesTable->rowCount(); 
filesTable->insertRow(row); 
filesTable->setItem(row, 0, fileNameItem); 
filesTable->setItem(row, 1, sizeItem); 

आनंद लें।

+2

मुझे लगता है कि यह लाइन 'फाइलटेबल-> insertRow (पंक्ति);' एक नया जोड़ने के बजाय अंतिम पंक्ति को ओवरराइड कर देगी, यह 'फाइलटेबल-> insertRow (पंक्ति + 1); 'होना चाहिए। 'fileNameItem' और' sizeItem' QTableWidgetItem का उदाहरण होना चाहिए: 'QTableWidgetItem * fileNameItem = new QTableWidgetItem; fileNameItem-> setText ("फ़ाइल नाम आइटम"); QTableWidgetItem * sizeItem = नया QTableWidgetItem; आकार इटैम-> सेटटेक्स्ट ("आकार वस्तु"); – SIFE

+2

@SIFE उत्तर के लिए धन्यवाद। मैंने आपको अपने कोड के साथ टिप्पणी की जांच की थी और मुझे कोई समस्या नहीं मिली। 'insertRow (पंक्ति) ', जहां' int row = filesTable-> rowCount()' सही तरीके से काम करता है ... – mosg

+1

ऐसा लगता है कि दोनों विधियां सही तरीके से काम करती हैं। – SIFE

4

यह book on Qt स्वतंत्र रूप से उपलब्ध है और सर्वोत्तम क्यूटी प्रशिक्षकों में से एक द्वारा लिखा गया है।
लेआउट डिजाइनर में कूदने और क्लिक करने से पहले आपको "क्यूटी रास्ता" में से कुछ को समझने की आवश्यकता है।

6

बनाने के लिए कॉलम:

ui->tableWidget->setColumnCount('the number of columns'); 

इससे पहले कि आप जिन पंक्तियों को कुल पंक्तियों को निर्धारित करने की आवश्यकता सम्मिलित कर सकते हैं: अब पंक्तियों और स्तंभों के माध्यम से लूप

ui->tableWidget->setRowCount('number of rows'); 

और प्रत्येक

में डेटा सेट
for (int ridx = 0 ; ridx < 'number of rows' ; ridx++) 
{ 
    for (int cidx = 0 ; cidx < 'number of columns' ; cidx++) 
    { 
     QTableWidgetItem* item = new QTableWidgetItem(); 
     item->setText('text or number to display'); 
     ui->tableWidget->setItem(ridx,cidx,item); 
    } 
} 

हेडर सेट करने के लिए

ui->tableWidget->setHorizontalHeaderLabels('QStringList containing the names'); 

आशा है कि यह प्रारंभ बिंदु के रूप

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

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