How to add new row to existing QTableWidget?

If you are using Python + PyQt5

from PyQt5 import QtCore, QtWidgets

# table is a QtWidgets.QTableWidget object
table.insertRow(table.rowCount()) 
item = QtWidgets.QTableWidgetItem(ITEM_CONTENT)
table.setItem(table.rowCount()-1, COLUMN_INDEX, item)
item = QtWidgets.QTableWidgetItem(ROW_LABEL_STRING)
table.setVerticalHeaderItem(table.rowCount()-1, item)

Doing something like this should work:

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

This will append a row to the end of your table. You can use the insertRow() function to insert new rows into the middle of your table as well.


To extend @Chris' answer and provide additional information:

If you want to add data (i.e. push_back and fill a new row):

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

If you know the number of rows and columns in advance:

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)));

Tags:

C++

Qt