QMovie播放动画

目的

学习QMovie加载gif动态图片,实现播放动画。

QMovie

详细说明它是这样说的, QMovie是一个用QImageReader去播放动画的便捷类。 但是他只能播放显示简单的没有声音的动画, 若想要实现音视频内容,需要使用Qt Multimedia.

QMovie常见属性设置

gif文件的帧数

 int frameCount();

主要是获取gif文件的总帧数;可以作为停止判断条件

gif文件播放过程中的当前帧数:

int currentFrameNumber() const ;

可以调用这个接口来获取,也可以管理movie的信号

 frameChanged(int) 

获取gif文件当前的播放速度:

int speed() const

设置gif文件当前的播放速度:

void setSpeed(int percentSpeed)

要注意的是参数是一个百分整数,即最后的播放速度 = 参数值 * 0.01;如果要设置为2倍播放速度,那么参数应该是 200;

获取当前播放的动画的文件路径

QString fileName() const;

获取当前播放的动画的循环次数

int loopCount() const;

如果动画的播放属性是一直循环播放,则返回的循环次数就是一个 -1 值;

QMovie常见信号

void start(); 

在movie对象开始播放时触发

 void finished(); 

在动画播放结束后触发

void frameChanged (int frameNumber); 

参数为当前帧数,可以根据这个值在槽函数中设置只播放一次, :

if(frameNumber== movie->frameCount() -1 )
{
   movie->stop();
}
void stateChanged(QMovie::MovieState state); 

这个状态主要有三种:停止状态(**QMovie::NotRunning **) ,暂停状态(QMovie::Paused ),正在播放状态(**QMovie::Running **) ;三者的枚举值分别是 0,1,2。

参考博文

误区

loopCount 次数不能通过代码设置,没有接口,刚开始以为动画播放完毕就结束,会触发finished信号, 结果发现是没有的,主要是gif一般设置循环播放的, 所以会开启下次循环不会触发finished信号, gif循环播放次数是可以ps在制作过程中设置的。
loopCount

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道阻且长,行则降至

无聊,打赏求刺激而已

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值