标签内容比较长,如下所示:
设置内容省略代码:
QString content = "123456789,123456789,123456789";
QString s = ui->label->fontMetrics().elidedText(content,Qt::ElideRight,ui->label->width());
ui->label->setText(s);
ui->label->adjustSize(); //根据内容调整label大小
设置效果图:
这个效果的核心是标签所调用的 fontMetrics() 函数,它的返回值是 QFontMetrics 类(字体体积相关类),这个类的方法 elidedText() 可设置文本的省略模式。
QString QFontMetrics::elidedText(const QString &text, Qt::TextElideMode mode, int width, int flags = 0);
// 第一个参数是设置省略的内容(字符串)
// 第二个参数是省略的模式
// 第三个参数是省略的宽度
// 第四个参数当前只有一个固定的不管
省略模式枚举:
Qt::ElideLeft | 省略号出现在内容的开头 |
---|---|
Qt::ElideRight | 省略号出现在内容的末尾 |
Qt::ElideMiddle | 省略号出现在内容的中间 |
Qt::ElideNone | 没有省略号 |
详细内容可查询 Qt助手