QString CApplianceItem::GetElidedText(QFont font, QString str, int iMaxWidth)
{
if (str.isEmpty())
{
return "";
}
QFontMetrics fontWidth(font);
//计算字符串宽度
int width = fontWidth.width(str);
//当字符串宽度大于最大宽度时进行转换
if (width >= iMaxWidth)
{
//右部显示省略号
str = fontWidth.elidedText(str, Qt::ElideRight, iMaxWidth);
//正常elidedText返回省略号在右下,此处在右边中间,是否和字体有关?
str.replace("…", "...");
}
//返回处理后的字符串
return str;
}
不知道为什么QT帮助手册显示fontWidth.elidedText(str, Qt::ElideRight, iMaxWidth);返回的字符串应该是在右下角,而我的是在右边中间,搞不懂,有没有大佬解释下
通过QT字体类QFontMetrics处理字符串过长显示不下的问题添加省略号
最新推荐文章于 2024-05-13 23:13:45 发布