Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 以编程方式自动调整QTableView列的大小_C++_Qt_Resize_Qtableview_Qheaderview - Fatal编程技术网

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

C++ 以编程方式自动调整QTableView列的大小,c++,qt,resize,qtableview,qheaderview,C++,Qt,Resize,Qtableview,Qheaderview,我的程序中有一个QTableView,我想自动调整它的大小。我使用了这些函数 headerViewHorizontal->setSectionResizeMode(QHeaderView::ResizeToContents); headerViewHorizontal->setSectionResizeMode(3, QHeaderView::Stretch); 来调整它的大小,当我调整窗口大小时,它会起作用。但是我需要在表中插入一行,这可能需要调整列的大小。我的问题在这里。当我插

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

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)
我认为此函数会使相关列增长,并将后面的列推向右侧。事实并非如此。非常感谢。