前言
很多时候,界面就那么宽,QLabel如果字数过多且宽度不够的时候就会产生显示不全。
现象
出现文字显示截断
解决方法
QFontMetrics fontWidth(label->font());//得到QLabel字符的度量
QString elidedNote = fontWidth.elidedText(msg, Qt::ElideRight, maxWidth);//获取处理后的文本
QFontMetrics
根据QFont计算字符串的大小。
QFontMetrics::elidedText
如果字符串宽过给定数值,会用…为字符串省略某些字。
参数 | 类型 | 说明 |
---|---|---|
text | const QString & | 原文本 |
mode | Qt::TextElideMode | 文本省略方式,可以是左中右 |
width | int | 限定宽度 |