在繪制文本時(shí)經(jīng)常會(huì)遇到文本長(zhǎng)度不確定,導(dǎo)致繪制寬度無(wú)法確定的問(wèn)題秒裕。
一般這種我都是設(shè)置一個(gè)固定的繪制寬度速梗,顯示部分文本,顯示不足部分用省略號(hào)表示版述。
QString Tool::getElidedText(QFont font, QString str, int MaxWidth) const
{
QFontMetrics fontWidth(font);
int width = fontWidth.width(str); //計(jì)算字符串寬度
if (width >= MaxWidth) //當(dāng)字符串寬度大于最大寬度時(shí)進(jìn)行轉(zhuǎn)換
{
str = fontWidth.elidedText(str, Qt::ElideRight, MaxWidth); //右部顯示省略號(hào)
}
return str;
}
省略號(hào)位置可以設(shè)置, 修改fontWidth.elidedText(str, Qt::ElideRight, MaxWidth)
中Qt::ElideRight
參數(shù)即可
enum TextElideMode
{
ElideLeft, //省略號(hào)在左側(cè)
ElideRight, //省略號(hào)在右側(cè)
ElideMiddle, //省略號(hào)在中間
ElideNone //無(wú)省略號(hào)
};