QLabel 大小固定,QString长度过长用省略号

首先看一下默认状态下,当字符长度较长时,Qlabel只显示部分字符,如图
在这里插入图片描述

   QString str="一二三四五六七八九十东西南北上下左右早晚";
   ui->label->setText(str);
   ui->label->setFrameShape(QFrame::Box);
ui->label->setMinimumWidth(80);
    QFont f(ui->label->font());//获取控件字体font
    QFontMetrics fm(f);
    QString str1= fm.elidedText(ui->label->text(), Qt::ElideRight, ui->label->width());//三个参数分别为:需要省略的字符串,省略方式,长度
    ui->label->setText(str1);
    qDebug()<<fm.elidedText(str, Qt::ElideLeft, 80);//"…下左右早晚" 
    qDebug()<<fm.elidedText(str, Qt::ElideRight, 80);//"一二三四五…" 
    qDebug()<<fm.elidedText(str, Qt::ElideMiddle, 80);//"一二…早晚" 
    qDebug()<<fm.elidedText(str, Qt::ElideNone, 80);//"一二三四五六七八九十东西南北上下左右早晚"




你可能感兴趣的:(QT)