I have this widget created with QTableWidget:
and I would like that the column of my table resize in order to occupy the entire width of the widget, while for the rows is ok as it is. I know there is a similar question like mine but I was not able to solve it in that way.. This is my code
void MainWindow::createTable(int rows, int columns) {
mainList = new QTableWidget;
QStringList headerLabels;
headerLabels << "Title" << "Director" << "Year" << "Counter" << "Rating";
mainList->setRowCount(rows);
mainList->setColumnCount(columns);
mainList->setHorizontalHeaderLabels(headerLabels);
mainList->setEditTriggers(QAbstractItemView::DoubleClicked | QAbstractItemView::SelectedClicked);
mainList->setSelectionBehavior(QAbstractItemView::SelectRows);
mainList->resizeColumnsToContents();
mainList->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
setCentralWidget(mainList);
}
horizontalHeader()->setResizeMode( 0, QHeaderView::Stretch ); to make the first column resize so the QTableWidget is always full. Override the resizeEvent and set the widths of each column yourself when the QTableWidget has been resized.
Change column width To change the width to a specific measurement, click a cell in the column that you want to resize. On the Layout tab, in the Cell Size group, click in the Table Column Width box, and then specify the options you want.
Resize columns Select a column or a range of columns. On the Home tab, select Format > Column Width (or Column Height). Type the column width and select OK.
Hold ALT (Option) and drag resizer. In this mode, you will redistribute the space between two adjacent columns - increasing the width of one column and decreasing the width of another.
Considering that you are using Qt5, give a try to
QTableWidget* mainList = new QTableWidget;
QHeaderView* header = mainList ->horizontalHeader();
header->setSectionResizeMode(QHeaderView::Stretch);
OR
There is a header flag to ensure that the QTableView's last column fills up its parent if resized.
header->setStretchLastSection(true);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With