参考链接:Qt—QLabel 使用总结
一、简述
QLabel(标签控件) 提供了一个文本或图像的显示,没有提供用户交互功能。
一个 QLabel 可以包含以下任意内容类型:
-纯文本:使用 setText() 设置一个 QString
- 富文本:使用 setText() 设置一个富文本的 QString
- 图像:使用 setPixmap() 设置一个图像
- 动画:使用 setMovie() 设置一个动画
- 数字:使用 setNum() 设置 int 或 double,并转换为纯文本
- Nothing:空的纯文本,默认的,使用 clear() 设置
二、使用总结
显示
首先我们构造一个 QLabel 对象。通过调用 setText 可以为标签设置文本(Hello World),这时标签就可以正常显示出来了。为了显示更佳的效果,我们可以通过调用 setStyleSheet 来设置样式。
QLabel *pLabel = new QLabel(this);
pLabel->setText("Hello World");
pLabel->setStyleSheet("color: red");
对齐方式
默认的标签文本对齐方式为:左对齐、垂直居中,我们可以通过 setAlignment 来设置,包括:左、上、右、下、居中对齐,一般情况,我们会进行两两组合(水平方向、垂直方向)。
比如:居中对齐
pLabel->setAlignment(Qt::AlignCenter);
使用样式表来控制(水平居右、垂直居下):
setStyleSheet("qproperty-alignment: 'AlignBottom | AlignRight';");
缩进
设置 QLabel 的文本缩进:
pLabel->setIndent(4);
自动换行
如果文本过长,我们可以采用自动换行的方式来显示。
pLabel->setWordWrap(true);
注意:当使用英文的时候,如果写为类似形式 ”abcdefghijklmnopqrstuvwxyz” 则是不能换行的,why?因为中间没有空格,所以需要写为 ”abcde fghij klmno pqrst uvwxyz”。
设置行高
一般情况下,自动换行之后文本上下行会距离比较近,我们可以通过下面方式来设置行高。
pLabel->setWordWrap(true);
QString strText = QStringLiteral("一去二三里,烟村四五家。亭台六七座,八九十枝花。");
QString strHeightText = "<p style=\"line-height:%1%\">%2<p>";
strText = strHeightText.arg(150).arg(strText);
pLabel->setText(strText);
省略
如果过长,我们又不想换行,只想把其中一部分省略为…,那么我们可以通过 QFontMetrics 来实现,这里先不介绍 QFontMetrics,感兴趣的童鞋可以先自行研究。
QString strText