zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Qt学习之路之QMovie动画

2023-09-14 09:05:26 时间

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开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓