用于tableWidget的Qt setHorizo​​ntalHeaderLabels

THE*_*TOR 6 user-interface qt qtablewidget qlist

我怎么会去使用setHorizo​​ntalHeaderLabels我的财产tableWidget而不是数字来指定我的专栏的名字呢?我想将我的行保存为数字,但是将我的列更改为我收集到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]));
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要一些指导如何正确地从我的QList中获取值并将列设置为我的tableWidget的值.我的tableWidget中出现的列是1,2,3,4,5,6,7,它们来自在setColumnCount中传递给它的项目数,而不是test1,test2,test3.

cgm*_*gmb 9

在您的示例中,将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 );
Run Code Online (Sandbox Code Playgroud)


Hen*_*aak 5

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

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