Qt setHorizontalHeaderLabels для tableWidget
Как я буду использовать свойство setHorizontalHeaderLabels моего tableWidget для указания имен для моих столбцов, а не чисел? Я хочу сохранить мои строки в виде чисел, но изменить мои столбцы на имена, которые я собрал в 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.
2 ответа:
В вашем примере вы устанавливаете 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 );