QT 之QLabel使用常见操作汇总

简介

QLabel控件提供文本或图像显示。
头文件:

 #include <QLabel>  

qmake: QT += widgets
继承自:QFrame

场景1

void clear()    //清除显示
void setMovie(QMovie *movie)   //显示动画
void setNum(double num)    //把double数字转换为本文显示
void setNum(int num)   //把double数字转换为本文显示
void setPicture(const QPicture &picture)  //显示图片
void setPixmap(const QPixmap &)    //显示图片
void setText(const QString &)     //显示文本

场景2

信号:

void linkActivated(const QString & link)  //发出这个信号是当用户单击一个链接。传入的URL被锚的链接。
void linkHovered(const QString & link)   //发出这个信号是当用户将鼠标悬停于一个链接。传入的URL被锚的链接。

使用举例

1. 显示动画

QMovie *movie = new QMovie(QLatin1String(":/icons/loading.gif"), QByteArray(), label);
movie->start();
label->setMovie(movie);

2.显示图片

知识补充(QPixmap QImage QPicture 区别)

  1. QPixmap 针对屏幕进行了优化,和平台相关(在不同的平台可能绘制出的效果不一致)
  2. QImage 和平台无关,可以对图片进行修改(某个像素点的修改),可以在线程里绘图
  3. QPicture 保存绘图的状态(二进制文件)

2.1 setPixmap

ui->server_status_display->setPixmap(QPixmap(QString::fromUtf8(":/resource/label/image/test.jpg")));

2.2 QImage

QImage *img=new QImage; //新建一个image对象  
img->load(":/resource/label/image/test.jpg"); //将图像资源载入对象img,注意路径,可点进图片右键复制路径
ui->label->setPixmap(QPixmap::fromImage(*img)); //将图片放入
ui->label->setScaledContents(true); //自适应缩放

2.3 QPixmap(正式写法)

QPixmap pixmap;
//然后加载图片
pixmap.load(":/Image/boat.jpg");
//最后将图片设置到QLabel中
QLabel *label = new QLabel;
label.setPixmap(pixmap);

2.2 setPicture

QPicture picture;
picture.load(":/resource/label/image/test.jpg");
ui->label->setPicture(picture);

3.显示文本

ui->label->setText("this is a test string");
ui->label->setWordWrap(true);  //自动换行

4.显示数字

ui->label->setNum(1);

5.清除显示

ui->label->clear();

6.字体颜色设置

void setTextStyle(QColor color)
{
    QPalette pa;
    QFont ft;
    
    pa.setColor(QPalette::WindowText, color);
    ft.setPointSize(10);
    ui->label->setFont(ft);
    ui->label->setPalette(pa);
}

7.边框颜色设置

//圆角边框
ui->label->setStyleSheet("border: 1px groove gray; border-radius: 5px; background-color: rgba(255, 193, 245, 0%); ");
//普通边框
ui->label_2->setStyleSheet("border-width: 1px; border-style: solid; border-color: rgb(255, 170, 0);");

或者 QSS设置

QLabel{
border-width: 1px;
border-style: solid;
border-color: rgb(255, 170, 0);
}

效果如下
在这里插入图片描述

8.可以显示HTML格式的字符串

比如显示一个链接:

QLabel * label = new QLabel(this);
label ->setText("Hello, World");
label ->setText("<h1><a href=\"https://www.baidu.com\">百度一下</a></h1>");
label ->setOpenExternalLinks(true);

其中setOpenExternalLinks()函数是用来设置用户点击链接之后是否自动打开链接,如果参数指定为true则会自动打开,如果设置为false,想要打开链接只能通过捕捉linkActivated()信号,在自定义的槽函数中使用QDesktopServices::openUrl()打开链接,该函数参数默认值为false

QLabel * label = new QLabel(this);
label ->setText("Hello, World");
label ->setText("<h1><a href=\"https://www.baidu.com\">百度一下</a></h1>");

//默认为false
// label->setOpenExternalLinks(true);  
connect(label, &QLabel::linkActivated, this, &MyWidget::slotOpenUrl);
 
//槽函数    
void MyWidget::slotOpenUrl(const QString &link)
{
    QDesktopServices::openUrl(QUrl(link));
}
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路过的小熊~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值