Как добавить новую строку в существующий QTableWidget? - PullRequest
17 голосов
/ 05 августа 2011

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

Ответы [ 2 ]

25 голосов
/ 05 августа 2011

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

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

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

6 голосов
/ 16 марта 2017

Чтобы расширить ответ @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)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...