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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux下显卡信息的查看

    linux下显卡信息的查看

    2022年3月12日
    96
  • maven快速入门_maven如何使用

    maven快速入门_maven如何使用企业级架构框架图之前我们关注的是前端的解决方案(涉及到的技术有H5、CSS3、JavaScript,CSS升级为Bootstrap再升级到ElementUI,JavaScript升级到jQuery再升级到Vue+NodeJS)现在开始我们开始关注后端的解决方案,也就是服务器端到底干了什么,哪些技术来支持(SpringBoot、Maven、SpringMVC、Spring、Mybatis)。这样前后端都学习完,整个软件项目所需要的基本技术就全线贯通,就可以自己独立完成企业级项目的开发了。下面我们来描

    2022年8月22日
    3
  • Java入门基础知识点总结(详细篇)

    Java入门基础知识点总结(详细篇)Java入门基础知识点总结(详细篇)~~~~~目录1.1图解1.1.1Java基础知识点1.1.2Java基础语法的相关内容1.2关键字1.3标识符1.3.1标识符概念1.3.2定义标识符的合法规则1.3.3Java中的一些命名规范1.4变量1.4.1变量的分类1.4.2整数类型1.4.3浮点类型1.4.4字符类型char1.4.5布尔类型boolean1.5ASci…

    2022年7月7日
    18
  • savefiledialog是什么对话框_saveshowfile什么意思

    savefiledialog是什么对话框_saveshowfile什么意思c#获取要保存文件的对话框,用SaveFileDialog类。具体用法很简单分享一下吧,对于初学者可能有用//可能要获取的路径名stringlocalFilePath=””,fileNameExt=””,newFileName=””,FilePath =””;SaveFileDialogsaveFileDialog=newSaveFileDialog();

    2022年10月8日
    0
  • 常用字符编码及乱码分析[通俗易懂]

    常用字符编码及乱码分析[通俗易懂]常见的编码GBK、GB2312:表示国标编码,GDB包含简体中文和繁体中文,而DB2312只包含简体中文,也就是说,这两种编码都是描述中文的编码UNICODE编码:Java提供的16进制编码,可以描述世界上任意的文字信息,但是有个问题,若现在所有的字母都使用16进制编码,那么这个编码太庞大了,会造成网络传输的负担ISO8859-1:国际通用编码,但是所有的编码都需要进行转换UTF编码:相…

    2022年5月29日
    48
  • python缩进错误-如何改正python缩进错误[通俗易懂]

    广告关闭2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品。未来,我们一起乘风破浪,创造无限可能。我正在尝试制作一个程序,给我一个可能的密码列表,并将它们放入记事本文件中完整的错误回溯如下:文件“pass_crack_list.py”,第16行file.write(猜测+尝试)#unexpectedindenterror..为什么?!taberror:缩进中不…

    2022年4月8日
    60

发表回复

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

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