Qt QLable 字符过长省略
  svdVS8fLqb4I 2023年12月08日 9 0


前言:

项目中常用到字符过长问题,Qt默认的省略并不好用,不是自己想要的;

QFontMetri

可使用 QFontMetri

text的像素宽度超过width,将返回字符串的一个省略版本取决于mode。否则将返回原字符串;

mode:

enum TextElideMode {
        ElideLeft,
        ElideRight,
        ElideMiddle,
        ElideNone
    };

一般我们喜欢右边省略

code:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    const QString str =  "aaaaaaaaadddbbbbccccccr";
    ui->label->setText(str);

    QString omitStr = GetOmitString(ui->label_2->font(),str,ui->label_2->width());
    ui->label_2->setText(omitStr);

}
QString MainWindow::GetElideString(const QFont &font, const QString content, const int width)
{
   QFontMetrics fontMetrics(font);
   return fontMetrics.elidedText(content, Qt::ElideRight, width);
}

效果:

第一个默认,第二个右边省略

Qt QLable 字符过长省略_ide

Qt QLable 字符过长省略_ide_02

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月08日 0

暂无评论

推荐阅读
svdVS8fLqb4I