以编程方式自动调整QTableView列的大小

问题描述

我的程序中有一个QTableView,我想自动调整其大小。我用过的功能

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

调整它的大小,当我调整窗口大小时它适用。但是然后我需要在表中插入一行,这可能需要调整列的大小。我的问题在这里。当我插入一行时,其中一个字段太大,系统用树点将其写入(例如:“ 12.03 ...”而不是“ 12.03.2020”)。我需要调整窗口大小以使系统调整列的大小。

有没有可以用来强制更新列宽的插槽?

提前谢谢!

PS我在C ++中使用Qt5。

解决方法

感谢@Scheff,我的问题得到了回答。

解决方案是对没有拉伸调整大小模式的列之一使用resizeColumnToContent()。彼此将被更新。

Edit:仅当您调用resizeColumnToContent()的列必须更改其宽度时,此解决方案才有效。否则,您必须彼此调用resizeColumnToContent(int column)。