DtkGui
DTK Gui module
载入中...
搜索中...
未找到
Dtk::Gui::DDciIconImagePlayer类 参考

#include <ddciiconplayer.h>

类 Dtk::Gui::DDciIconImagePlayer 继承关系图:
Dtk::Gui::DDciIconImagePlayer 的协作图:

Public 类型

enum  State { NotRunning , WaitingRead , Running }
 播放状态 更多...
 
enum  Flag {
  Continue = 1 , CacheAll = 2 , InvertedOrder = 4 , IgnoreLastImageLoop = 8 ,
  AllowNonLastImageLoop = 16 , ClearCacheOnStop = 32
}
 播放参数 更多...
 

Public 槽

bool start (float speed=1.0, DGUI_NAMESPACE::DDciIconImagePlayer::Flags flags={})
 
void stop ()
 

信号

void started ()
 
void updated ()
 
void finished ()
 
void stateChanged ()
 

Public 成员函数

 DDciIconImagePlayer (QObject *parent=nullptr)
 
void setImages (const QVector< DDciIconImage > &images)
 
QVector< DDciIconImageimages () const
 
const DDciIconImagecurrentImage () const
 
bool currentLoopForever () const
 
bool setPalette (const DDciIconPalette &palette)
 
DDciIconPalette palette () const
 
void setLoopCount (int count)
 
int loopCount () const
 
void abortLoop ()
 
QImage readImage ()
 
State state () const
 
void clearCache ()
 

属性

DGUI_NAMESPACE::DDciIconImagePlayer::State state
 

详细描述

用于 DDciIconImage 的动画播放,功能设计类似于 QMovie。支持无缝顺序播放播放多个图片、倒序播放等高级功能。

成员枚举类型说明

◆ Flag

播放参数

缓存的帧被判断为无效时将会被自动清理,如调用 DDciIconImagePlayer::setImage 改变了要播放的图片资源。

枚举值
Continue 

接着上一次动画停止时的状态继续播放,一般会配合 InvertedOrder 同时使用

CacheAll 

缓存本次播放中的所有动画帧

InvertedOrder 

倒序播放

IgnoreLastImageLoop 

忽略最后一个图片的动画循环次数,即无论 DDciIconImage::loopCount 的值是什么,动画都只播放一次

AllowNonLastImageLoop 

允许非最后一个图片循环播放,默认时不允许,以确保所有图片都有机会被播放,避免动画在前面的图片中无限循环进行播放

ClearCacheOnStop 

在动画停止时清理缓存的帧,无论动画是播放完成时的自动停止还是被动停止

◆ State

播放状态

枚举值
NotRunning 

未播放动画

WaitingRead 

正在播放动画,且等待读取当前帧

Running 

正在播放动画,此时处于等待下一帧到来的状态

构造及析构函数说明

◆ DDciIconImagePlayer()

Dtk::Gui::DDciIconImagePlayer::DDciIconImagePlayer ( QObject *  parent = nullptr)
explicit

构造此对象。

参数
[in]parent指定此 QObject 对象的父对象

成员函数说明

◆ abortLoop()

Dtk::Gui::DDciIconImagePlayer::abortLoop ( )

终止本次播放中的所有动画循环,即后续的动画都仅播放一遍,这会导致忽略 DDciIconImage::loopCount 和 DDciIconImagePlayer::loopCount。

◆ clearCache()

Dtk::Gui::DDciIconImagePlayer::clearCache ( )

立即清理所有的缓存帧。

◆ currentImage()

Dtk::Gui::DDciIconImagePlayer::currentImage ( ) const

返回当前正在播放的图片对象,如果当前的状态是 NotRunning,则会返回一个空的 DDciIconImage。

◆ currentLoopForever()

Dtk::Gui::DDciIconImagePlayer::currentLoopForever ( ) const

如果当前正在播放的图片陷入了无限循环,则返回 true,否则返回 false。

参见
DDciIconImagePlayer::Flag::IgnoreLastImageLoop DDciIconImagePlayer::Flag::AllowNonLastImageLoop

◆ finished

Dtk::Gui::DDciIconImagePlayer::finished ( )
signal

在本次动画播放结束时发送信号通知。因为调用 DDciIconImagePlayer::stop 导致的动画停止不会触发此信号。

参见
DDciIconImagePlayer::start

◆ images()

Dtk::Gui::DDciIconImagePlayer::images ( ) const

返回当前已指定的图片序列。

◆ loopCount()

Dtk::Gui::DDciIconImagePlayer::loopCount ( ) const

返回动画循环次数。

参见
DDciIconImagePlayer::setLoopCount

◆ palette()

Dtk::Gui::DDciIconImagePlayer::palette ( ) const

返回当前已指定的调色板,如果未设置过调色板,则返回一个空的 DDciIconPalette。

参见
DDciIconImagePlayer::setPalette

◆ readImage()

Dtk::Gui::DDciIconImagePlayer::readImage ( )

读取当前动画帧,这是一个“生产者-消费者”模型,只有当状态为 WaitingRead 时才能读取,且每一帧只能读取一次。

参见
DDciIconImagePlayer::updated

◆ setImages()

Dtk::Gui::DDciIconImagePlayer::setImages ( const QVector< DDciIconImage > &  images)

指定待播放的图片序列,如果当前的状态不是 NotRunning,并且与上一次指定的图片序列不同,则停止动画。

参数
[in]images图片序列,当为多个时,将无缝顺序播放所有图片。

◆ setLoopCount()

Dtk::Gui::DDciIconImagePlayer::setLoopCount ( int  count)

指定动画的循环次数,当从调用 DDciIconImagePlayer::start 到收到 DDciIconImagePlayer::finished 信号为一次循环,除非调用 DDciIconImagePlayer::stop,否则不会终止此循环。另外,需要注意的是,此循环与 DDciIconImage::loopCount 无关,他们相互独立,且会叠加生效。

参见
DDciIconImagePlayer::loopCount

◆ setPalette()

Dtk::Gui::DDciIconImagePlayer::setPalette ( const DDciIconPalette palette)

指定读取动画帧时所使用的调色板,如果图片支持此功能,则能控制获取到的图片的某些颜色。如果设置成功,并且当前的状态是 NotRunning,则会立即清理缓存帧,否则会在动画停止时清理缓存帧。

参数
[out]如果新的DDciIconPalette 与当前的 DDciIconPalette 相同,则返回 false,否则返回 true。
参见
DDciIconImagePlayer::palette

◆ start

Dtk::Gui::DDciIconImagePlayer::start ( float  speed = 1.0,
DGUI_NAMESPACE::DDciIconImagePlayer::Flags  flags = {} 
)
slot

立即启动动画,应当在此之前调用 DDciIconImagePlayer::setImages。如果启动成功,将发送 started 信号。在启动后,会根据每一帧的间隔自动触发 updated 信号,以通知使用方在合适的时候显示新的帧。在动画播放完成后,将发送 finished 信号,在动画未播放结束前调用了 stop 主动结束动画则不会发送信号。

参数
[in]speed本次动画的播放速度,其表示的是倍速,值越大动画播放的越快。设置为 0 时与设置为 1.0 等价。
[in]flags控制本次动画播放时的一些行为。
[out]如果动画启动成功则返回true,否则返回 false。动画启动失败的原因一般是因为此时已经在播放动画、没有设置任何图片或所有图片都不支持动画。
参见
DDciIconImagePlayer::started DDciIconImagePlayer::updated DDciIconImagePlayer::readImage DDciIconImagePlayer::finished DDciIconImagePlayer::stateChanged

◆ started

Dtk::Gui::DDciIconImagePlayer::started ( )
signal

通知动画已开始播放。

◆ state()

Dtk::Gui::DDciIconImagePlayer::state ( ) const

返回当前的状态。

参见
DDciIconImagePlayer::stateChanged

◆ stateChanged

Dtk::Gui::DDciIconImagePlayer::stateChanged ( )
signal

在状态改变时发送信号通知。

参见
DDciIconImagePlayer::state

◆ stop

Dtk::Gui::DDciIconImagePlayer::stop ( )
slot

立即停止当前动画的播放。这不会发送 finished 信号。

◆ updated

Dtk::Gui::DDciIconImagePlayer::updated ( )
signal

通知动画的当前帧已经发生变化,在收到此信号后需要立即调用 readImage,否则动画会被暂停,不会自动到下一帧。

参见
DDciIconImagePlayer::readImage

该类的文档由以下文件生成: