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


相关推荐

  • PhpStorm 配置 Xdebug调试工具

    PhpStorm 配置 Xdebug调试工具

    2021年10月31日
    55
  • EFI Shell 命令参考

    EFI Shell 命令参考对于使用使用DOS的人来说,会使用DOS命令是最基本的,而在当今即将盛行的EFIBIOS来说,就有了新的变化,如何操作EFIShell呢?至此我贴出了EFIShell的命令供大家学习。EF

    2022年7月4日
    25
  • debian配置samba_ubuntu设置文件共享

    debian配置samba_ubuntu设置文件共享●安装与配置Samba共享服务●创建目录为/share/public的共享目录●共享名为public●仅支持匿名用户的只读访问(请在该目录内存放一个文件名为file.txt,文件内容为“TestFile”以便于测试)●创建目录为/share/files的共享目录●共享名为files●创建zhangsan,wangwu两个用户,密码均为Skills39,并且都能从client客户端登录访问到该共享目录并上传文件●zhangsan用户可以查看和删除所有人的文件●wa

    2025年12月3日
    3
  • SCCM 2007 R2部署、操作详解系列之准备篇

    SCCM 2007 R2部署、操作详解系列之准备篇

    2021年8月14日
    58
  • 从机械硬盘和固态硬盘的结构来看IO

    从机械硬盘和固态硬盘的结构来看IO“磁盘”这个词,对于程序员来说并不陌生,我们知道它是一种存储介质,主要用来存储数据的,可以说常用的中间件基本上都离不开它,比如我们常用的MySQL数据库、kafka消息引擎,甚至redis缓存都离不开磁盘。我们在优化某个业务逻辑的时候,经常需要用到缓存,尽量让热数据都从缓存里读取,因为我们知道磁盘是缓慢的,特别在高并发的场景下,我们要保证极少的请求走磁盘IO。不知道你有没有思考过以下问题: 机械硬盘为什么慢? 机械硬盘有多慢? kafka也是写磁盘的,它却挺快的,为什么?..

    2022年5月12日
    47
  • redis设置过期时间后再set还用设置时间吗_redis setnx 过期时间

    redis设置过期时间后再set还用设置时间吗_redis setnx 过期时间​​​​​​​java操作Redis缓存设置z过期时间转载:java操作Redis缓存设置过期时间-liuminchao-博客园关于Redis的概念和应用本文就不再详解了,说一下怎么在java应用中设置过期时间。在应用中我们会需要使用redis设置过期时间,比如单点登录中我们需要随机生成一个token作为key,将用户的信息转为json串作为value保存在redis中,通常做法是://生成tokenStringtoken=UUID.randomUUID().t..

    2022年9月26日
    4

发表回复

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

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