[英]Qt QTableWidget Column resizing
我有一个在QToolBar,QWidget 的和QTabWidget一个主窗口 。 布局是“网格”。 但是,我的窗口可以调整大小,因为我有一个布局,它运行良好。 但是有一个问题,在我的QTabWidget中我有一个带有两列的QTableWidget (布局也是“Grid”)。 如果我调整整个窗口的大小, QTableWidget会调整大小,但不会调整列。
例如,每当我调整窗口大小时,我的QTabWidget也会调整大小, QTableWidget 也会调整大小。 只有我的QTableWidget中的列不会。
那么......如果我的QTableWidget调整大小,我怎么能调整它们的大小呢?
要拉伸最后一列:
ui->tableWidget->horizontalHeader()->setStretchLastSection(true);
要拉伸列#n :
ui->tableWidget->horizontalHeader()->setSectionResizeMode(n, QHeaderView::Stretch);
ResizeMode
的QHeaderView
。 例如,使用: horizontalHeader()->setResizeMode( 0, QHeaderView::Stretch );
使第一列调整大小,使QTableWidget
始终满。
QTableWidget
大小时,重写resizeEvent
并自己设置每列的宽度。 ui->mytable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
您可以使用QHeaderView和方法QHeaderView :: setResizeMode()更改列或行的“调整大小模式”。
http://qt-project.org/doc/qt-4.8/qheaderview.html#setResizeMode
http://qt-project.org/doc/qt-4.8/qtableview.html#verticalHeader
http://qt-project.org/doc/qt-4.8/qtableview.html#horizontalHeader
如果您只想调整最后一列:
ui->tableWidget->horizontalHeader()->setStretchLastSection(1);
对于这个的最佳解决方案,在Qt5中你必须使用setSectionResizeMode
而不是setResizeMode
tabv = QTableView()
tabv.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
在Qt5中,您必须使用setSectionResizeMode
而不是setResizeMode
QTableWidget* myTable = new QTableWidet;
QHeaderView* header = myTable->horizontalHeader();
header->setSectionResizeMode(QHeaderView::Stretch);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.