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

Auto-resize columns of QTableView programmatically

我的程序中有一个 QTableView,我想自动调整它的大小。我使用了函数

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

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

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

提前致谢!

PS 我正在使用带有 C++ 的 Qt5。

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

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

编辑:只有当您调用 resizeColumnToContent() 的列必须更改其宽度时,此解决方案才有效。否则你必须互相调用 resizeColumnToContent(int column)。