QT学习笔记—QMovie播放GIF文件

QMovie类不属于多媒体模块。

常用方法

QMovie方法

  • 获取总帧数
int QMovie::frameCount() const
//Returns the number of frames in the movie.
  • 当前帧序号
int QMovie::currentFrameNumber() const
  • 当前帧图像
QImage QMovie::currentImage() const
QPixmap QMovie::currentPixmap() const
  • 跳转到某一帧
bool jumpToFrame(int frameNumber)
  • 获取帧缩放大小
QSize QMovie::scaledSize()
  • 缩放帧大小
void QMovie::setScaledSize(const QSize &size)
  • 获取、设置播放速度
int speed() const
   
[slot] void setSpeed(int percentSpeed)
  • 获取movie状态
MovieState QMovie::state() const

MovieState取值:

1、QMovie::NotRunning
2、QMovie::Paused
3、QMovie::Running
  • 开始播放
[slot] void QMovie::start()

​ 进入QMovie::Running状态,触发started()updated()resized()等信号

  • 停止播放
[slot] void QMovie::stop() 

​ 调用该函数进入QMovie::NotRunning状态,将会发射updated()resized()信号

  • 暂停/继续播放
[slot] void QMovie::setPaused(bool paused)
//paused —— true 暂停
//paused —— false 继续

GIF动画播放

#include "mywidget.h"
#include "ui_mywidget.h"
#include <QMovie>

MyWidget::MyWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::MyWidget)
{
    
    
    ui->setupUi(this);

    setWindowTitle(tr("GIF动画播放"));

    movie = new QMovie("D:/QT_Project/GIF_QMovie/Gif_QMoiv/test.gif");

    ui->label->setMovie(movie);
    movie->start();
}

MyWidget::~MyWidget()
{
    
    
    delete ui;
}

void MyWidget::on_pushButton_clicked()
{
    
    
    switch (movie->state())
    {
    
    
    case QMovie::NotRunning:
    case QMovie::Paused:
        movie->start();
        break;
    case QMovie::Running:
        movie->stop();
        break;
    default:
        break;
    }
}


void MyWidget::on_pushButton_3_clicked()
{
    
    
    switch (movie->state()) {
    
    
    case QMovie::Paused:
        movie->setPaused(false);
        break;
    case QMovie::Running:
        movie->setPaused(true);
    default:
        break;
    }
}

学习总结:
最好的学习方法:看Qt助手的帮助文档和官方demo。

猜你喜欢

转载自blog.csdn.net/qq_36413982/article/details/107967741