如题 :
QString ThumbnailPix::elidedText(QWidget *wdt, int nline, const QString &text)
{
if(nline <= 0){
return text;
}
int width = wdt->width() - 5;
QFontMetrics fm(wdt->font());
if(fm.horizontalAdvance(text) <= width){
return text;
}
if(nline == 1){
return fm.elidedText(text,Qt::ElideMiddle,width);
}
int rows = qCeil(double(fm.horizontalAdvance(text)) / double(width));
//满行的都加进列表;
QStringList txtlist;
QString strText = text;
for(int i=0; i<strText.size(); i++){
if(fm.horizontalAdvance(strText.left(i)) >= width){
txtlist.append(strText.left(i));
strText = strText.right(strText.size() - i);
i = 0;
}
}
//最后不足一行的也加进去;
if(!strText.isEmpty()){
txtlist.append(strText);
}
if(rows <= nline){
return txtlist.join("\n");
}
else{
QStringList tmp = txtlist.mid(0