Qt版本:5.15.0
方法一:
设置ResizeMode为QHeaderView::ResizeToContents
pTableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); // 非必须
pTableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); // 设置垂直表头按内容自动调整行高
pTableWidget->setWordWrap(true); // 这个值默认为true,可以不调用
pTableWidget->setTextElideMode(Qt::ElideNone); // 文本省略模式,不设置部分情况出现省略号...
注意:QHeaderView::ResizeToContents模式会在表格大量插入数据或者表格大小改变时造成界面卡顿
方法二:
使用resizeRowsToContents()函数修改行高适应文本
//pTableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);// 非必须调用
//pTableWidget->verticalHeader()->setSectionResizeMode(QHeaderView::Fixed); // 非必须调用
pTableWidget->setWordWrap(true); // 这个值默认为true,可以不调用
pTableWidget->setTextElideMode(Qt::ElideNone);
// 表格改变时需要再次调用resizeRowsToContents,比如列宽改变时需要调用
pTableWidget->resizeRowsToContents();
我这边应用主要是一个表格显示有限的几行参数,所有参数均可见,不会有滚动条出现,设置总是不显示滚动条
pTableWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
pTableWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
在自动分行的同时需要调整tablewidget的高度,让所有参数可见
int rowsTotalHeight = 0;
for(int i = 0; i < pTableWidget->rowCount(); ++i)
{
rowsTotalHeight += pTableWidget->rowHeight(i);
}
pTableWidget->setMinimumHeight(rowsTotalHeight + 2);
pTableWidget->setMaximumHeight(rowsTotalHeight + 2);
对于英文的情况,部分也还会出现字母看不见