Qt动画播放之QMovie类

主要是用到QMovie类

实现在事件触发时开启动画播放效果(需要注意的是,这个动画播放默认是循环播放的,如果不做特殊处理动画会一直播放)

QMovie *movie = new QMovie("aaa.gif");
ui->movieLabel->setMovie(movie);
movie->start();			//启动gif图片
//movie->stop();		//停止gif图片的播放

QMovie类简介:

1、指定播放的文件

  • 利用构造函数在初始化的时候,指定要播放的文件;
    QMovie *movie = new QMovie(":/a.gif");
    movie->start();
    
  • 利用setFileName(QString)来指定播放的gif文件
    movie->setFileName(":/a.gif");
    movie->start();
    

2、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 值;

3、movie中的一些常见信号

  • 启动信号: 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

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值