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 ""
#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/");
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。