QTableWidget 自动分行

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);

 对于英文的情况,部分也还会出现字母看不见

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值