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