Qt学习之路之QMovie动画「建议收藏」

Qt学习之路之QMovie动画「建议收藏」QMovie类是一个很方便的类,用于播放动画。在刷新页面的时候,可以尝试用QMovie来实现等待界面。QMovie类用于显示简单的动画,没有声音。首先,通过将一个文件的名称或者一个指针传递给QMovie的构造函数构建一个QMovie对象。传递的文件包含文件的格式。可以调用函数isValid()来检测在动画开始播放前,动画是否有效。调用函数start()函数开始播放动

大家好,又见面了,我是你们的朋友全栈君。

QMovie类是一个很方便的类,用于播放动画。在刷新页面的时候,可以尝试用QMovie 来实现等待界面。

QMovie类用于显示简单的动画,没有声音。

首先,通过将一个文件的名称或者一个指针传递给QMovie的构造函数构建一个QMovie对象。传递的文件包含文件的格式。

可以调用函数isValid()来检测在动画开始播放前,动画是否有效。

调用函数start() 函数开始播放动画,QMovie将进入运行状态,并发射started() 和 stateChanged()信号。

当然,调用函数state() 可获取当前动画的播放状态。

比如, 用QLabel 显示动画:

QLabel label;
QMovie *movie = new QMovie("animations/fire.gif");

label.setMovie(movie);
movie->start();


每当一个动画用于新的框架中,QMovie将会发出update() 信号,若动画的帧发生变化,QMovie将会发出resized()信号。

调用函数 currentImage() 或者 currentPixmap() 可获取当前帧副本。

每当动画播放完毕, QMovie将会发出finished()信号。若在播放动画的过程中出现任何的错误,QMovie()将发出信号 error(); 

QMovie 相当强大, 它可以调用函数 setSpeed()来设置动画的播放速率,setPaused(true) 将暂停播放动画,然后发出stateChanged()信号。当然,再次向函数setPaused()传递参数 false,动画将重新播放。 停止播放动画 可调用函数 stop()。

QMovie 可以通过调用 setCacheMode() 指示缓存帧的动画。


部分QMovie函数详情:

1,setSpeed()

动画的播放速率是用原始的动画速率百分比衡量。默认的速度是 100%。例如:

Movie movie("racecar.gif");
movie.setSpeed(200); // 2x speed


这里, 动画的播放速率将回事原始速率的2倍
。

2,backgroundColor()

函数原型:

QColor QMovie::​backgroundColor() const


该函数将返回动画的背景色,如果没有指定背景色,那么,函数将返回一个无效的 QColor。可以调用 下面的函数设置动画的背景色:

void QMovie::​setBackgroundColor(const QColor & color)


3,isValid()

函数原型:

bool QMovie::​isValid() const


如果动画有效,将返回true, 相反,则返回false。

QMovie的学习就到这儿~~~~ 

下面是用QLabel对象显示QMovie动画的部分代码:

QMovie *Movie = new QMovie(":/movie/1");
	Movie->setSpeed(1000);
	Movie->setBackgroundColor(QColor(10, 10, 10));
	QLabel  *Label = new QLabel();

	Label->setMovie(Movie);
	Label->show();
	Movie->start();

运行结果:

Qt学习之路之QMovie动画「建议收藏」           Qt学习之路之QMovie动画「建议收藏」

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148089.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vue devtools使用教程_vue debug

    vue devtools使用教程_vue debug一般在utils文件夹下api.js文件里面写接口,接口环境判断varhref=window.location.href//两者都可以拿到当前运行URL链接//varhost=window.location.hostlet_ipcc_cst;const_sysServer=(/(creditcard.ecitic.com)/i.test(location.origin))?’https://creditcard.ecitic.com’:’https://e.test.ban

    2022年9月29日
  • cavas的使用汇总[通俗易懂]

    cavas的使用汇总[通俗易懂]canvas图像处理汇总一、canvas的情况canvas自从出来了之后,在前端的图像处理上面提供了各种各样的遍历,虽然很多的操作其实都是要应用到算法的,但是这个也给前端提供了很多的可能性,其中最

    2022年8月6日
  • pytest 执行用例_pytest怎么指定部分用例执行

    pytest 执行用例_pytest怎么指定部分用例执行前言平常我们功能测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟,如果单个测试人员执行需要1000分钟才能跑完当项目非常紧急时,会需要协调多个测试资源来把任务分成两部分,于是执行时间

    2022年7月31日
  • 磁盘分区类型和分区表的区别[通俗易懂]

    磁盘分区类型和分区表的区别[通俗易懂]任务1罗列磁盘分区的类型并做比较性介绍分类:FAT16、FAT32、NTFS、EXT2、EXT3、EXT4FAT16:磁盘分区最大只能到2GB、使用簇的大小不恰当、FAT16使用了16位的空间来表示每个扇区文件名长度有限制FAT32:相比FAT16会拥有更多的簇,更大空间容量上限为16TB根目录区(ROOT区)不再是固定区域、固定大小速度和FAT16一样快,对大磁盘利用率比FAT16好文件名长度有限制NTFS:备3个功能:错误预警功能、磁盘自我修复功能和日志功能安全性,

    2022年8月11日
  • node.js linux安装_node安装及环境配置

    node.js linux安装_node安装及环境配置版本:node-v10.16.0-linux-x64.tar.xzwgethttps://nodejs.org/dist/v10.16.0/node-v10.16.0-linux-x64.tar.xz1、上传到服务器目录:/usr/local/soft2、解压安装包cd/usr/local/softtarzxvfnode-v8.9.1-linux-x64.tar.gz…

    2022年9月2日
  • 微信小程序列表页面_微信发现没有小程序

    微信小程序列表页面_微信发现没有小程序尽量不要用缓存去写效果展示:点击编辑,进入编辑页第一页编辑按钮:<viewclass=”bj-btn”bindtap=”redactGroup”data-id=”{{传递的id}}”>编辑</view>redactGroup方法:options.currentTarget.dataset.前面自定义的名字redactGroup(options){letid=options.currentTarget.dataset.id;…

    2022年8月19日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号