7

我将如何使用 tableWidget 的setHorizo ​​ntalHeaderLabels属性来指定列的名称而不是数字?我想将我的行保留为数字,但将我的列更改为我收集到QList中的名称。

现在,我将的值设置为整数。当我尝试使用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中传递给它的项目数。

4

2 回答 2

11

在您的示例中,您将 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 );
于 2012-05-30T18:31:06.990 回答
6

还要意识到调用ui->tableWidget_inputPreview->clear()将删除标签。

考虑ui->tableWidget_inputPreview->clearContents()保留标签。

于 2014-11-20T15:02:23.800 回答