Qt开发 — 显示gif动画

本文介绍了如何在Qt环境中利用QMovie和QLabel组件来显示GIF动画。首先,通过创建QMovie对象加载GIF文件,并设置到QLabel中。然后启动动画,GIF将在QLabel上流畅播放。此外,还展示了如何通过监听QMovie的frameChanged信号来控制GIF动画仅播放一次。
摘要由CSDN通过智能技术生成

Qt开发 — 显示gif动画

Qt 中,静态图片 PNG,JPG 等可以用其创建 QPixmap,调用 QLabel::setPixmap() 来显示,但是能够具有动画的 GIF 却不能这么做,要在 QLabel 上显示 GIF,需要借助 QMovie 来实现。

QLabel 显示 GIF

使用 GIF 图片的路径创建 QMovie 对象,并且调用 QMovie::start() 启动 GIF 动画,然后通过 QLabel::setMovie() 设置好动画对象后,就能在 QLabel 上看到 GIF 动画了。

#include <QApplication>
#include <QMovie>
#include <QLabel>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QLabel *label = new QLabel();
    QMovie *movie = new QMovie("/Users/Biao/Desktop/x.gif");
    label->setMovie(movie); // 1. 设置要显示的 GIF 动画图片
    movie->start();         // 2. 启动动画
    label->show();
    
    return app.exec();
}
控制 GIF 动画循环次数
#include <QApplication>
#include <QMovie>
#include <QLabel>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QLabel *label = new QLabel();
    QMovie *movie = new QMovie("/Users/Biao/Desktop/x.gif");
    label->setMovie(movie); // 1. 设置要显示的 GIF 动画图片
    movie->start();         // 2. 启动动画
    label->show();

    QObject::connect(movie, &QMovie::frameChanged, [=](int frameNumber) {
        // GIF 动画执行一次就结束
        if (frameNumber == movie->frameCount() - 1) {
            movie->stop();
        }
    });

    return app.exec();
}
  • 11
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值