QLabel
是 Qt 框架中的一个基础控件,用于显示文本或图片。
1、设置文本
setText()
:设置或更改标签的文本。
QLabel *label = new QLabel();
// 设置显示的文本
label->setText("Hello Wolrld!");
// 获取文本
QString text = label->text();
setAlignment()
:设置文本的对齐方式。参数是个枚举类型
QLabel *label = new QLabel();
// 设置显示的文本
label->setText("Hello Wolrld!");
// 设置靠右侧显示文本
label->setAlignment(Qt::AlignRight);
当标签文本过长时,需要换行显示时
setWordWrap(bool)
:设置是否启用自动换行。
如果文本是纯数字可以直接使用setNum()设置,参数支持整数和浮点数
QLabel *label = new QLabel();
int n = 1000;
label->setNum(n);
double d = 100.99;
label->setNum(d);
2、设置图片
setPixmap()
:设置或更改标签的图片
setPicture():设置或更改标签的图片
setMovie():设置git动画
QLabel *label = new QLabel(this);
QMovie *movie = new QMovie("scrolling_text.gif");
label->setMovie(movie);
movie->start();
3、超链接
当label的内容设置为超链接的链接时,点击后会发出信号 linkActivated
可以绑定此信号,在槽函数中进行处理
4、滚动文本设置
(1)可以把待滚动的文本做成gif,通过setMove设置动画方式进行设置
(2)可以使用定时器,手动设置自
可以设置文本的显示靠左、靠右;
比如需要实现的文本是:祝你身体健康、万事如意。
可以递增设置:从1个文字到2个文字到全部显示,然后进入下一个循环。
呈现出来的效果就是文字在滚动或逐个增加文字。
QLabel *label = new QLabel(this);
QString text = "这是一段滚动显示的文本。";
int position = 0;
// 创建定时器
QTimer *timer = new QTimer(this);
timer->setInterval(100); // 设置定时器时间间隔
connect(timer, &QTimer::timeout, this, &YourClass::updateText);
// 更新文本的槽函数
void YourClass::updateText() {
// 根据position调整显示的文本
QString displayedText = text.mid(position, text.size());
label->setText(displayedText);
// 更新滚动位置
if (position < text.size()) {
position++;
} else {
position = 0; // 重置位置,实现循环滚动
}
}
// 启动定时器
timer->start();