Подтвердить что ты не робот

Как добавить новую строку в существующий QTableWidget?

Мое приложение - телефонная книга (образовательные цели). Когда пользователь открывает приложение, QTableWidged заполняется данными, загруженными из XML файла. Когда пользователь добавляет новый номер телефона, я хотел бы добавить этот номер в QTableWidget, но ранее я установилRowCount в текущее значение, и теперь это одна строка. Как я могу решить эту проблему?

4b9b3361

Ответ 1

Выполнение чего-то подобного должно работать:

tableWidget->insertRow( tableWidget->rowCount() );

Это добавит строку в конец вашей таблицы. Вы можете использовать функцию insertRow(), чтобы вставлять новые строки в середину таблицы.

Ответ 2

Чтобы продлить ответ @Chris и предоставить дополнительную информацию:

Если вы хотите добавить данные (например, push_back и заполнить новую строку):

tableWidget->insertRow ( tableWidget->rowCount() );
tableWidget->setItem   ( tableWidget->rowCount()-1, 
                         yourColumn, 
                         new QTableWidgetItem(string));
// repeat for more columns

Если вы знаете количество строк и столбцов заранее:

ui->tableWidget->clear();
ui->tableWidget->setRowCount(numRows);
ui->tableWidget->setColumnCount(numColumns);
for (auto r=0; r<numRows; r++)
     for (auto c=0; c<numColumns; c++)
          tableWidget->setItem( r, c, new QTableWidgetItem(stringData(r,c)));