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));
}

版权声明:本文为qq_32348883原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>