I have just managed to make a QTableView
work with my model. It has fixed 3 columns. When I open a window, it looks ok, but when I resize the window, the QTableView
itself gets resized, but columns' width remains the same.
I want columns to resize to fit the edges of QTableView
every time the window gets resized.
Is there any built-in way to make it work?
There is a header flag to ensure that the QTableView's last column fills up its parent if resized. You can set it like so:
table_view->horizontalHeader()->setStretchLastSection(true);
However, that does not resize the other columns proportionately. If you want to do that as well, you could handle it inside the resizeEvent of your parent thusly:
void QParent::resizeEvent(QResizeEvent *event) {
table_view->setColumnWidth(0, this->width()/3);
table_view->setColumnWidth(1, this->width()/3);
table_view->setColumnWidth(2, this->width()/3);
QMainWindow::resizeEvent(event);
}
QParent class is subclass of QMainWindow.