简体   繁体   中英

Auto-resize columns of QTableView programmatically

I have a QTableView in my programm which I want to resize automatically. I used the functions

headerViewHorizontal->setSectionResizeMode(QHeaderView::ResizeToContents);
headerViewHorizontal->setSectionResizeMode(3, QHeaderView::Stretch);

to resize it and it works for when I resize the window. But then I need to insert a row in the table which could need to resize the columns. My problem is here. When I insert a row, one of the fields it too larg and the system write it with tree dots (ex. : "12.03..." instead of "12.03.2020"). I need to resize my window to make the system resize the columns.

Is there a slot which I can call to force an update of the columns width ?

Thank you in advance !

PS I'm using Qt5 with c++.

Thanks to @Scheff, my question is answered.

The solution is to use resizeColumnToContent() to one of the columns which has not the stretch resize mode. Each other will be updated.

Edit : This solution works only when the column on which you call resizeColumnToContent() has to change its width. Otherwise you have to call resizeColumnToContent(int column) on each other.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM