如何使用 tableWidget 的 setHorizontalHeaderLabels 属性来指定列的名称而不是数字?我想将我的行保留为数字,但是将我的列更改为我收集到 QList 中的名称。
现在,我将行和列的值设置为整数。当我尝试使用 setHorizontalHeaderLabels 时,似乎列的整数值会覆盖我尝试指定的列名,我不知道如何修复它。
这就是我设置当前值的方式,它只涉及行和列的整数值:
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
答案 0 :(得分:9)
在您的示例中,您将setHorizontalHeaderLabels设置为空列表。在设置标题之前一定要填写它。另外,在设置列数后设置标题。
这是你想要的那种顺序:
//--- 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 );
答案 1 :(得分:3)
同时意识到调用ui->tableWidget_inputPreview->clear()
会删除标签。
考虑ui->tableWidget_inputPreview->clearContents()
保留标签。