Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to add new row to existing QTableWidget?

Tags:

c++

qt

My app is phonebook(educational purposes). When user opens application, QTableWidged is filled with data loaded from .xml file. When user add new phone number, I would like to append this number to QTableWidget, but previously I setRowCount to current value, and now it is one row to little. How can I solve this problem?

like image 439
icepopo Avatar asked Aug 05 '11 14:08

icepopo


2 Answers

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.

like image 91
Chris Avatar answered Sep 18 '22 13:09

Chris


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))); 
like image 35
DomTomCat Avatar answered Sep 18 '22 13:09

DomTomCat