2010-05-06 114 views
14

如何在QTableWidget上顯示數據並從頭中讀取數據?如何在QTableWidget上顯示數據並從頭中讀取數據?

+2

@ayla使用Qt文檔作爲起點:http://doc.trolltech.com/4.6/qtablewidget.html#details – mosg 2010-05-06 07:58:22

+0

那你試試,你讀什麼文檔? 2010年的男人一定是SO的沙拉日,因爲他們毫不費力地提出問題。 :) – neuronet 2015-07-12 20:56:19

回答

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

我認爲這行'filesTable-> insertRow(row);'會覆蓋最後一行而不是添加一個新行,它應該是'filesTable-> insertRow(row + 1);'。 'fileNameItem'和'sizeItem'應該是這樣一個QTableWidgetItem的實例: 'QTableWidgetItem * fileNameItem = new QTableWidgetItem; fileNameItem-> setText(「file name item」); QTableWidgetItem * sizeItem = new QTableWidgetItem; sizeItem-> setText(「size item」);' – SIFE 2011-12-06 23:38:08

+2

@SIFE感謝您的回覆。我檢查了你的評論與我的代碼,並沒有發現任何問題。 'insertRow(row)',其中'int row = filesTable-> rowCount()'正常工作... – mosg 2011-12-07 06:31:19

+1

好像兩個方法都能正常工作。 – SIFE 2011-12-07 10:40:27

4

這個book on Qt是免費的,由最好的Qt培訓師之一編寫。
在跳入並點擊佈局設計器之前,您確實需要了解「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'); 

希望它有助於

相關問題