Resizing QTableWidget Columns and Rows to Fill Table

sj755 picture sj755 · Jul 1, 2013 · Viewed 22k times · Source

I have a QTableWidget with an N number of columns, which when the number of columns are set, they automically fill in the entire QTableWidget. When I try to dynamically change the number of columns to N/2 columns, the size of each column does not change. This results in the right half the QTableWidget being nothing but whitespace.

Conversly, if I were it reset the column count to 2*N, the column widths adjust themselves appropriately and fill the QTableWidget.

I'm wondering how I can reset the number of columns and row without the QTableWidget having any whitespace?

Answer

Calum Murray picture Calum Murray · Jul 1, 2013

Have you tried setting the QHeaderView's Resize Mode?

    QTableWidget* myTable = new QTableWidet;
    QHeaderView* header = myTable->horizontalHeader();
    header->setResizeMode(QHeaderView::Stretch);

Edit: As pointed out, in Qt 5:

    QTableWidget* myTable = new QTableWidet;
    QHeaderView* header = myTable->horizontalHeader();
    header->setSectionResizeMode(QHeaderView::Stretch);