前言:
项目中常用到字符过长问题,Qt默认的省略并不好用,不是自己想要的;
QFontMetri
可使用 QFontMetri
当text的像素宽度超过width,将返回字符串的一个省略版本取决于mode。否则将返回原字符串;
mode:
1 enum TextElideMode { 2 ElideLeft, 3 ElideRight, 4 ElideMiddle, 5 ElideNone 6 };
一般我们喜欢右边省略
code:
1 MainWindow::MainWindow(QWidget *parent) : 2 QMainWindow(parent), 3 ui(new Ui::MainWindow) 4 { 5 ui->setupUi(this); 6 const QString str = "aaaaaaaaadddbbbbccccccr"; 7 ui->label->setText(str); 8 9 QString omitStr = GetOmitString(ui->label_2->font(),str,ui->label_2->width()); 10 ui->label_2->setText(omitStr); 11 12 } 13 QString MainWindow::GetElideString(const QFont &font, const QString content, const int width) 14 { 15 QFontMetrics fontMetrics(font); 16 return fontMetrics.elidedText(content, Qt::ElideRight, width); 17 }
效果:
第一个默认,第二个右边省略
标签:省略,Qt,QLable,label,width,ui,MainWindow From: https://www.cnblogs.com/ybqjymy/p/18080171