C++ 以编程方式自动调整QTableView列的大小
我的程序中有一个QTableView,我想自动调整它的大小。我使用了这些函数C++ 以编程方式自动调整QTableView列的大小,c++,qt,resize,qtableview,qheaderview,C++,Qt,Resize,Qtableview,Qheaderview,我的程序中有一个QTableView,我想自动调整它的大小。我使用了这些函数 headerViewHorizontal->setSectionResizeMode(QHeaderView::ResizeToContents); headerViewHorizontal->setSectionResizeMode(3, QHeaderView::Stretch); 来调整它的大小,当我调整窗口大小时,它会起作用。但是我需要在表中插入一行,这可能需要调整列的大小。我的问题在这里。当我插
headerViewHorizontal->setSectionResizeMode(QHeaderView::ResizeToContents);
headerViewHorizontal->setSectionResizeMode(3, QHeaderView::Stretch);
来调整它的大小,当我调整窗口大小时,它会起作用。但是我需要在表中插入一行,这可能需要调整列的大小。我的问题在这里。当我插入一行时,其中一个字段太大,系统用树点写入(例如:“12.03…”而不是“12.03.2020”)。我需要调整窗口的大小,使系统调整列的大小
是否有一个插槽,我可以调用它来强制更新列宽
提前谢谢你
我用QT5用C++。< /P> < P>谢谢@ Scheff,我的问题得到解答。 解决方案是对其中一列使用“拉伸调整大小”模式。彼此将被更新
编辑:此解决方案仅在调用resizeColumnToContent()的列必须更改其宽度时有效。否则,您必须互相调用resizeColumnToContent(int column)。如何?是的,但此函数将所有列调整为这些内容,以便即使是应处于strech模式的列也能适应其内容。链接函数可调整特定列的大小。(我省略了参数。但只是用
()
作为后缀表示链接指向成员函数。)因此,您可以自己决定(或将其包装成条件)是否将ResizeColumntContents()
应用于可伸缩列。void QTableView::ResizeColumntContents(int-column)
我认为此函数会使相关列增长,并将后面的列推向右侧。事实并非如此。非常感谢。