How to delete all rows from QTableWidget

c++, qt, qtablewidget

Solution

Just set the row count to 0 with:

mTestTable->setRowCount(0);

it will delete the `QTableWidgetItem`s automatically, by calling `removeRows` as you can see in `QTableWidget` internal model code:

void QTableModel::setRowCount(int rows)
{
    int rc = verticalHeaderItems.count();
    if (rows < 0 || rc == rows)
        return;
    if (rc < rows)
        insertRows(qMax(rc, 0), rows - rc);
    else
        removeRows(qMax(rows, 0), rc - rows);
}

Problem

I am trying to delete all rows from a QTableWidget . Here is what I tried. ``` for ( int i = 0; i < mTestTable->rowCount(); ++i ) { mTestTable->removeRow(i); } ``` I had two rows in my table. But this just deleted a single row. A reason could be that I did not create the the table with a fixed table size. The Qt Documentation for rowCount() says, This property holds the number of rows in the table. By default, for a table constructed without row and column counts, this property contains a value of 0. So if that is the case, what is the best way to remove all rows from table?

Original source