前言:记录开发过程中QLabel的使用,持续更新ing...
开发平台:Win10 64位
开发环境:Qt Creator 13.0.0
构建环境:Qt 5.15.2 +MSVC2019 64位
一、基本属性
技巧:对于Qlabel这类控件的属性有一些共同的特点,那就是set+xxx是设置这个控件的对应的属性,如果去掉set,那就是获取这个控件的对应属性。
基本功能:提供文本或图像显示,外观可以通过多种方式进行配置,QLabel 可以包含以下任何内容类型:
内容 | 设置 |
---|---|
纯文本 | 通过setText()方法传递一个QString |
富文本 | 通过setText()方法传递一个富文本QString |
像素图 | 通过 setPixmap()设置 一个 QPixmap ,用于显示图像 |
电影 | 通过setMovie来设置一个QMovie类型的多媒体,用于显示动画特效 |
数字 | 通过 setNum()属性显示int 或 double类型数据 |
空 | 啥也不显示 |
#include <QApplication>
#include <QLabel>
#include <QPixmap>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QLabel label;
label.setText("Hello, World!"); // 设置文本
QPixmap pixmap("image.png"); // 加载图像
label.setPixmap(pixmap); // 设置图像
label.setAlignment(Qt::AlignCenter); // 设置对齐方式
label.show();
return app.exec();
}
二、功能测试
2.1 移动QLabel位置
使用QLabel的move()方法和x(),y()属性。
通过定时器去改变label的y坐标轴,使其上下移动。
QTimer *timer=new QTimer;
timer->start(10);
connect(timer,&QTimer::timeout,[=]{
//ui->label->move(ui->label->x(),yValue++);
if(!direction){
ui->label->move(ui->label->x(),yValue++);
if(yValue==this->y())
direction=true;
}else {
ui->label->move(ui->label->x(),yValue--);
if(yValue==0)
direction=false;
}
});
2.2 设置全部QLabel样式
初始化时想要去掉QLabel的央视,在特定条件下再对QLabel进行设置
QList<QLabel *> LBlist = ui->centralwidget->findChildren<QLabel*>();
for(auto lb :LBlist)
{
lb->setStyleSheet("");
}
通过findChildren的泛型方法获取全部的QLabel,然后循环对其样式进行设置。
有时候我们想在初始化的时候对个别的QLabel不进行设置,可以在for循环中去排除
QList<QLabel *> LBlist = ui->centralwidget->findChildren<QLabel*>();
for(auto lb :LBlist)
{
if(lb->objectName()!="label")
{
lb->setStyleSheet("");
}
}
先判断QLabel的objectName()属性,就是对象名字,通过名字排除。