• 【Qt控件之QLabel】用法及技巧


    描述

    QLabel是Qt中的一个控件类,用于显示文本或图像的控件类之一。下面是QLabel类的一些主要函数说明:

    1. QLabel(QWidget *parent = nullptr):构造函数,创建一个QLabel对象。

    2. void setText(const QString &text):设置标签文本。

    3. QString text() const:获取标签当前的文本。

    4. void setPixmap(const QPixmap &pixmap):设置标签的图像,通过QPixmap对象指定图像。

    5. const QPixmap *pixmap() const:获取标签当前的图像。

    6. void setMovie(QMovie *movie):将一个QMovie对象设置为标签的动画。

    7. QMovie *movie() const:获取标签当前的动画对象。

    8. void setAlignment(Qt::Alignment alignment):设置标签的文本和图像的对齐方式。

    9. Qt::Alignment alignment() const:获取标签当前的文本和图像的对齐方式。

    10. void setWordWrap(bool on):设置标签是否启用自动换行。

    11. bool wordWrap() const:判断标签是否启用了自动换行。

    12. void setStyleSheet(const QString &styleSheet):设置标签的样式表。

    13. const QString &styleSheet() const:获取标签当前的样式表。

    14. void setToolTip(const QString &text):设置标签的提示文本。

    15. QString toolTip() const:获取标签当前的提示文本。

    以上仅列举了一些常用的函数,QLabel类还提供了许多其他函数用于更详细的设置和操作。通过使用这些函数,你可以在QLabel上显示文本、图像和动画,并设置对齐方式、样式等。

    使用

    以下是QLabel的用法及一些使用技巧:

    1. 基本用法:可以使用setText()函数设置QLabel的文本内容,使用setPixmap()函数设置QLabel的图像内容。
    QLabel *label = new QLabel("Hello, World!"); // 创建一个包含文本的QLabel
    label->setText("New Text"); // 设置文本内容
    label->setPixmap(QPixmap(":/images/image.png")); // 设置图像内容
    
    • 1
    • 2
    • 3
    1. 样式设置:可以使用setStyleSheet()函数设置QLabel的样式,可以通过设置字体、颜色、背景等来定制外观。
    label->setStyleSheet("QLabel { color : red; background-color : yellow; }");
    
    • 1
    1. 自动换行:可以使用setWordWrap()函数设置QLabel的自动换行,当文本内容过长时,可以自动进行换行显示。
    label->setWordWrap(true);
    
    • 1
    1. 对齐方式:可以使用setAlignment()函数设置QLabel的文本或图像的对齐方式,如左对齐、右对齐或居中对齐。
    label->setAlignment(Qt::AlignCenter);
    
    • 1
    1. HTML支持:QLabel支持显示HTML格式的文本,可以使用setText()函数并设置HTML格式的内容。
    label->setText("

    Title

    Paragraph

    "
    );
    • 1
    1. 可点击的文本:可以使用setOpenExternalLinks()函数设置QLabel中的文本是否可点击,并打开相关链接。
    label->setText("Click me");
    label->setOpenExternalLinks(true);
    
    • 1
    • 2

    设置Gif

    还可以使用QLabel控件设置Gif动态图片:
    要在QLabel上显示GIF图片,可以使用QMovie类和QLabel的setMovie()函数。
    下面是一个使用C++的示例,展示如何在QLabel上显示GIF图片:

    #include 
    #include 
    #include 
    
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
    
        // 创建一个QLabel
        QLabel label;
    
        // 创建一个QMovie对象,加载GIF图片
        QMovie *movie = new QMovie(":/images/animation.gif");
    
        // 将QMovie对象设置给QLabel
        label.setMovie(movie);
    
        // 播放GIF动画
        movie->start();
    
        // 根据GIF图片的大小设置QLabel的大小
        label.setFixedSize(movie->currentPixmap().size());
    
        // 显示QLabel
        label.show();
    
        return app.exec();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    解释

    上述代码创建了一个空的QLabel,并使用QMovie加载了一个GIF图片(文件路径为":/images/animation.gif",根据实际路径进行修改)。然后,将QMovie对象设置给QLabel,通过调用start()函数来播放GIF动画。为了确保QLabel适应GIF图片的大小,调用setFixedSize()函数,将QLabel的大小设置为当前GIF图片帧的大小。最后,显示QLabel。

    当程序运行时,QLabel将会显示加载的GIF动画。
    还可以根据需要调整和定制QMovie对象的其他属性,比如循环模式、帧速率等,以及QLabel的其他样式和属性。

    设置动画

    此外,使用QLabel控件可以使用Qt的动画框架QPropertyAnimation设置动画效果:

    #include 
    #include 
    #include 
    
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
    
        // 创建一个QLabel
        QLabel label("Hello, World!");
    
        // 设置初始透明度为0
        label.setStyleSheet("background-color: black; color: white");
        label.setWindowOpacity(0);
    
        // 创建一个QPropertyAnimation对象,用于进行透明度的动画效果
        QPropertyAnimation animation(&label, "windowOpacity");
    
        // 设置动画的起始值和值
        animation.setStartValue(0);
        animation.setEndValue(1);
    
        // 设置动画的持续时间
        animation.setDuration(2000);
    
        // 启动动画
        animation.start();
    
        // 显示QLabel
        label.show();
    
        return app.exec();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    解释

    上述示例代码创建了一个带有"Hello, World!"文本的QLabel。
    首先,将初始的透明度设置为0,然后创建一个QPropertyAnimation对象,指定要进行动画的对象和属性(这里是windowOpacity,即透明度)。
    接下来,设置动画的起始值和结束值,以及动画的持续时间。最后,启动动画并显示QLabel。
    当程序运行时,QLabel将会以淡入的方式显示出来,逐渐增加透明度,从而产生淡入效果。你还可以根据需要定制动画的其他属性,如缓动曲线、循环模式等。

  • 相关阅读:
    Linux 学习笔记(5-6)
    Java面试题第八天
    【C语言】数据结构——无头单链表实例探究
    Python-异常
    《网络安全笔记》第十四章:交换机的工作原理
    基于Xlinx的时序分析与约束(2)----基础概念(上)
    SaaS企业如何构建与自身增长目标相匹配的市场力?
    软件测试1
    MegEngine Inference 卷积优化之 Im2col 和 winograd 优化
    测试面试 | 某互联网大厂测试面试真题,你能回答出多少?
  • 原文地址:https://blog.csdn.net/MrHHHHHH/article/details/133691441