QLabel 内容长度超过控件本身长度时超出的部分用省略号

时间:2021-03-17 07:03:45

void JunEditableLabel::setText(const QString &string)

{  
       QFont font("Tahoma");
       font.setPixelSize(13);
       this->setFont(font);
       QFontMetrics fontMetrics(this->font());
       int fontSize = fontMetrics.width(string);//获取之前设置的字符串的像素大小
       QString str = string;
       if(fontSize > this->width())
       {
           str = fontMetrics.elidedText(string, Qt::ElideRight, this->width());//返回一个带有省略号的字符串
       }
       QLabel::setText(str);
    qDebug()<<"setText"<<this->text();
}