【发布时间】:2021-01-24 15:56:36
【问题描述】:
我的程序中有一个 QTableView,我想自动调整它的大小。我使用了函数
headerViewHorizontal->setSectionResizeMode(QHeaderView::ResizeToContents);
headerViewHorizontal->setSectionResizeMode(3, QHeaderView::Stretch);
调整它的大小,它适用于我调整窗口大小时。但随后我需要在表中插入一行,这可能需要调整列的大小。我的问题就在这里。当我插入一行时,其中一个字段太大并且系统用树点写入它(例如:“12.03 ...”而不是“12.03.2020”)。我需要调整窗口大小以使系统调整列的大小。
我可以调用一个槽来强制更新列宽吗?
提前谢谢你!
PS 我正在使用 Qt5 和 c++。
【问题讨论】:
-
是的,但是这个功能会将所有列的大小调整为那里的内容,因此即使是应该处于拉伸模式的列也会适应其内容。
-
链接函数调整特定列的大小。 (我省略了 arg。但只是以
()为后缀表示链接转到成员函数。)因此,您可以自己决定(或将其包装成条件)resizeColumnToContents()是否应用于是否可拉伸。 -
void QTableView::resizeColumnToContents(int column) -
我认为这个函数会增加有问题的列并向右推动彼此。事实并非如此。谢谢!
标签: c++ qt resize qtableview qheaderview