2012-05-30 48 views
4

我將如何去使用我的tableWidgetsetHorizo​​ntalHeaderLabels財產,而不是數字來指定我的專欄的名字呢?我想將我的行保留爲數字,但將我的列更改爲我收集的名稱,並將其寫入QList的Qt setHorizo​​ntalHeaderLabels爲tableWidget

現在,我有值行和列設置爲整數。當我嘗試使用setHorizo​​ntalHeaderLabels時,似乎列的整數值會覆蓋我試圖指定的列名稱,但我不知道如何解決該問題。

這是我如何設定目前其數值只是涉及到整數值我的行和列:

QList<QStringList> columnHeaderList; 

    //--- create the horizontal (column) headers 
    QStringList horzHeaders; 
    ui->tableWidget_inputPreview->setHorizontalHeaderLabels(horzHeaders); 
    horzHeaders << "test1" << "test2" << "test3"; 

    ui->tableWidget_inputPreview->setRowCount(rowList.size() - 1); 
    ui->tableWidget_inputPreview->setColumnCount(columnHeaderList[0].size()); 

for (int row = 0; row < rowList.size(); ++row) { 
    for (int column = 0; column < rowList[row].size(); ++column) { 
     ui->tableWidget_inputPreview->setItem(row, column, new QTableWidgetItem(rowList[row][column])); 
    } 
} 

我需要關於如何正確地從我的的QList取值,並設置一些指導列爲那些值爲我的tableWidget。出現在我的tableWidget中的列是1,2,3,4,5,6,7,其來自中傳遞給它的項目數setColumnCount而不是test1,test2,test3

+1

我很困惑......'setHorizo​​ntalHeaderLabels'完全按照你所要求的...它將標題設置爲QStringList中的QString。 – Anthony

+0

那麼,我正在解析一個文本文件並獲取行數的行數。文本文件的第一行被註釋幷包含我想要使用的列名稱。但是,我現在只能得到列數,不知道如何傳遞實際列名,因爲它不斷被列數覆蓋。在上面的代碼示例中,'row'和'column'是整數值。 –

+0

「我現在只得到列數,不知道如何傳遞實際的列名稱,因爲它不斷被列數覆蓋」編輯你的問題以明確你的意思。 – cmannett85

回答

7

在您的示例中,您將setHorizo​​ntalHeaderLabels設置爲空列表。設置標題之前一定要填寫它。另外,設置列數後設置標題。

這是你想要的排序順序:

//--- create the horizontal (column) headers 
QStringList horzHeaders; 
horzHeaders << "test1" << "test2" << "test3"; 
ui->tableWidget_inputPreview->setRowCount(rowList.size() - 1); 
ui->tableWidget_inputPreview->setColumnCount(columnHeaderList[0].size()); 
ui->tableWidget_inputPreview->setHorizontalHeaderLabels(horzHeaders); 
+0

你是對的。愚蠢的我......我認爲這與我做的事情有點不協調。謝謝! –

+0

感謝您的回答,解決了我的問題! :-) RE'另外,在設置列數之前設置標題。':你的代碼不是相反嗎?你的意思是'在設置列數之後設置標題**'。 ?至少似乎是它在5.4版本中工作的唯一方式。 – ssc

+0

@ssc哎呀。謝謝。 – cgmb

1

也意識到,調用ui->tableWidget_inputPreview->clear()將刪除標籤。

相關問題