2012-05-30 5 views
4

Как будет идти об использовании setHorizontalHeaderLabels свойства моей tableWidget указать имена для моих столбцов в отличие от чисел? Я хочу сохранить свои строки в виде чисел, но изменить мои столбцы на имена, которые я собрал в QList.Qt setHorizontalHeaderLabels для tableWidget

Прямо сейчас, у меня есть значения для строки и колонке набор в виде целых чисел. Когда я пытаюсь использовать 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. Столбцы, отображаемые в моем табличном виджете, - это 1, 2, 3, 4, 5, 6, 7, который поступает из количества передаваемых ему элементов в setColumnCount вместо test1, test2, test3.

+1

Я смущен ... 'setHorizontalHeaderLabels' делает именно то, что вы просите ... он устанавливает заголовки в QStrings в QStringList. – Anthony

+0

Ну, я разбираю текстовый файл и получаю количество строк для количества строк. Первая строка текстового файла прокомментирована и содержит имена столбцов, которые я хочу использовать. Тем не менее, я получаю только количество столбцов прямо сейчас и не знаю, как пройти по фактическим именам столбцов, так как он продолжает получать переопределение числа столбцов. В приведенном выше примере кода «строка» и «столбец» являются целыми значениями. –

+0

«Я получаю только количество столбцов прямо сейчас и не знаю, как пройти по фактическим именам столбцов, так как он продолжает получать переопределение числа столбцов». Измените свой вопрос, чтобы дать понять, что вы подразумеваете под этим. – cmannett85

ответ

7

В вашем примере вы устанавливаете 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); 
+0

Вы правы. Глупый я ... Я подумал, что это связано с тем, что я делаю что-то не по порядку. Благодаря! –

+0

Спасибо за этот ответ, решил мою проблему! :-) RE 'Кроме того, установите заголовки перед установкой количества столбцов.': Не делает ли ваш код наоборот? Вы имели в виду «установить заголовки ** после ** установки количества столбцов». ? По крайней мере, это, по-видимому, единственный способ работы здесь на Qt 5.4. – ssc

+0

@ssc Упс. Благодарю. – cgmb

1

понимают также, что вызов ui->tableWidget_inputPreview->clear() удалит этикетки.

Смежные вопросы