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 区别)
- QPixmap 针对屏幕进行了优化,和平台相关(在不同的平台可能绘制出的效果不一致)
- QImage 和平台无关,可以对图片进行修改(某个像素点的修改),可以在线程里绘图
- 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