PySide6.QtGui.QMovie

class QMovie

QMovie 类是一个用于通过 QImageReader 播放电影的便捷类。更多

PySide6.QtGui.QMovie 的继承图

概要

属性

方法

插槽

信号

静态函数

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

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

首先,通过将文件名或指向包含动画图像格式的QIODevice的指针传递给QMovie的构造函数来创建一个QMovie对象。在开始播放电影之前,您可以调用isValid()来检查图像数据是否有效。要开始播放电影,请调用start()QMovie将进入Running状态,并发出started()stateChanged()信号。要获取电影的当前状态,请调用state()

要在您的应用程序中显示电影,您可以将您的QMovie对象传递给QLabel::setMovie()。示例:

label = QLabel()
movie = QMovie("animations/fire.gif")
label.setMovie(movie)
movie.start()

每当电影中有新帧可用时,QMovie 会发出 updated()。如果帧的大小发生变化,会发出 resized()。你可以调用 currentImage()currentPixmap() 来获取当前帧的副本。当电影播放完毕时,QMovie 会发出 finished()。如果在播放过程中发生任何错误(例如,图像文件损坏),QMovie 会发出 error()

您可以通过调用setSpeed()来控制电影播放的速度,该函数以原始速度的百分比作为参数。通过调用setPaused (true)来暂停电影。QMovie将进入Paused状态并发出stateChanged()信号。如果您调用setPaused (false),QMovie将重新进入Running状态并重新开始播放电影。要停止电影,请调用stop()

某些动画格式允许您设置背景颜色。您可以调用setBackgroundColor()来设置颜色,或者调用backgroundColor()来检索当前的背景颜色。

currentFrameNumber() 返回当前帧的序列号。动画中的第一帧的序列号为0。frameCount() 返回动画中的总帧数,如果图像格式支持此功能。你可以调用 loopCount() 来获取电影在结束前应该循环的次数。nextFrameDelay() 返回当前帧应该显示的毫秒数。

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

调用supportedFormats()以获取QMovie支持的格式列表。

另请参阅

QImageReader

class MovieState

此枚举描述了QMovie的不同状态。

常量

描述

QMovie.NotRunning

电影未运行。这是 QMovie 的初始状态,也是调用 stop() 或电影结束后进入的状态。

QMovie.Paused

电影已暂停,QMovie 停止发出 updated()resized()。此状态在调用 pause() 或 setPaused (true) 后进入。当前帧号保持不变,当调用 unpause() 或 setPaused (false) 时,电影将继续播放下一帧。

QMovie.Running

电影正在播放。

class CacheMode

此枚举描述了QMovie的不同缓存模式。

常量

描述

QMovie.CacheNone

不缓存任何帧(默认)。

QMovie.CacheAll

所有帧都被缓存。

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property cacheModeᅟ: QMovie.CacheMode

此属性保存电影的缓存模式。

QMovie依赖的底层动画格式处理程序不支持跳转到动画中的特定帧,甚至不支持将动画“倒回”到开头(用于循环播放)时,缓存帧可能会很有用。此外,如果图像数据来自顺序设备,底层动画处理程序无法回退到已经读取数据的帧(使得循环播放完全不可能)。

为了帮助处理这种情况,可以指示QMovie对象缓存帧,但需要承担在对象生命周期内将帧保留在内存中的额外内存成本。

默认情况下,此属性设置为 CacheNone

另请参阅

CacheMode

Access functions:
property speedᅟ: int

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

此属性保存电影的速度。

速度以原始电影速度的百分比来衡量。默认速度为100%。示例:

movie = QMovie("racecar.gif")
movie.setSpeed(200) # 2x speed
Access functions:
__init__([parent=None])
Parameters:

父对象QObject

构造一个QMovie对象,将parent对象传递给QObject的构造函数。

__init__(device[, format=QByteArray()[, parent=None]])
Parameters:

构造一个QMovie对象。QMovie将从device读取图像数据,它假设该设备是打开且可读的。如果format不为空,QMovie将使用图像格式format来解码图像数据。否则,QMovie将尝试猜测格式。

parent 对象被传递给 QObject 的构造函数。

__init__(fileName[, format=QByteArray()[, parent=None]])
Parameters:

构造一个QMovie对象。QMovie将从fileName读取图像数据。如果format不为空,QMovie将使用图像格式format来解码图像数据。否则,QMovie将尝试猜测格式。

parent 对象被传递给 QObject 的构造函数。

backgroundColor()
Return type:

QColor

返回电影的背景颜色。如果未分配背景颜色,则返回无效的QColor

另请参阅

setBackgroundColor()

cacheMode()
Return type:

CacheMode

另请参阅

setCacheMode()

属性 cacheModeᅟ 的获取器。

currentFrameNumber()
Return type:

整数

返回当前帧的序列号。电影中的第一帧的编号为0。

currentImage()
Return type:

QImage

返回当前帧作为QImage

另请参阅

currentPixmap() updated()

currentPixmap()
Return type:

QPixmap

返回当前帧作为QPixmap

另请参阅

currentImage() updated()

device()
Return type:

QIODevice

返回设备 QMovie 读取图像数据的来源。如果当前没有分配设备,则返回 None

另请参阅

setDevice() fileName()

error(error)
Parameters:

错误ImageReaderError

当播放过程中发生错误 error 时,QMovie 会发出此信号。QMovie 将停止播放电影,并进入 NotRunning 状态。

fileName()
Return type:

字符串

返回QMovie读取图像数据的文件名。如果未分配文件名,或者分配的设备不是文件,则返回一个空的QString。

另请参阅

setFileName() device()

finished()

当电影播放完毕时,会发出此信号。

另请参阅

stop()

format()
Return type:

QByteArray

返回QMovie在解码图像数据时使用的格式。如果未分配格式,则返回空的QByteArray()。

另请参阅

setFormat()

frameChanged(frameNumber)
Parameters:

frameNumber – int

当帧号更改为frameNumber时,会发出此信号。您可以调用currentImage()currentPixmap()来获取帧的副本。

frameCount()
Return type:

整数

返回电影中的帧数。

某些动画格式不支持此功能,在这种情况下返回0。

frameRect()
Return type:

QRect

返回最后一帧的矩形。如果尚未更新任何帧,则返回无效的QRect。

isValid()
Return type:

布尔

如果电影有效(例如,图像数据可读且图像格式受支持),则返回 true;否则返回 false

有关电影无效的原因,请参阅 lastError()

jumpToFrame(frameNumber)
Parameters:

frameNumber – int

Return type:

布尔

跳转到帧号 frameNumber。成功时返回 true;否则返回 false

jumpToNextFrame()
Return type:

布尔

跳转到下一帧。成功时返回true;否则返回false

lastError()
Return type:

ImageReaderError

返回尝试读取图像数据时发生的最新错误。

另请参阅

lastErrorString()

lastErrorString()
Return type:

字符串

返回最近尝试读取图像数据时发生错误的人类可读表示。

另请参阅

lastError()

loopCount()
Return type:

整数

返回电影在结束前循环播放的次数。如果电影只播放一次(不循环),loopCount 返回 0。如果电影无限循环,loopCount 返回 -1。

请注意,如果图像数据来自顺序设备(例如套接字),QMovie 只有在 cacheMode 设置为 CacheAll 时才能循环播放电影。

nextFrameDelay()
Return type:

整数

返回QMovie在更新动画中的下一帧之前将等待的毫秒数。

resized(size)
Parameters:

大小QSize

当当前帧被调整为size时,会发出此信号。这种效果有时在动画中用作替换帧的替代方法。您可以调用currentImage()currentPixmap()来获取更新后的帧的副本。

scaledSize()
Return type:

QSize

返回帧的缩放大小。

setBackgroundColor(color)
Parameters:

颜色QColor

对于支持此功能的图像格式,此函数将背景颜色设置为color

另请参阅

backgroundColor()

setCacheMode(mode)
Parameters:

modeCacheMode

另请参阅

cacheMode()

属性 cacheModeᅟ 的设置器。

setDevice(device)
Parameters:

设备QIODevice

将当前设备设置为deviceQMovie在电影运行时将从该设备读取图像数据。

另请参阅

device() setFormat()

setFileName(fileName)
Parameters:

fileName – str

设置QMovie读取图像数据的文件名,为fileName

setFormat(format)
Parameters:

formatQByteArray

设置QMovie在解码图像数据时将使用的格式为format。默认情况下,QMovie会尝试猜测图像数据的格式。

你可以调用supportedFormats()来获取QMovie支持的所有格式的完整列表。

setPaused(paused)
Parameters:

暂停 – bool

如果 paused 为真,QMovie 将进入 Paused 状态并发出 stateChanged (Paused);否则它将进入 Running 状态并发出 stateChanged (Running)。

另请参阅

state()

setScaledSize(size)
Parameters:

大小QSize

将缩放后的帧大小设置为 size

setSpeed(percentSpeed)
Parameters:

percentSpeed – int

另请参阅

speed()

属性 speedᅟ 的设置器。

speed()
Return type:

整数

另请参阅

setSpeed()

属性 speedᅟ 的获取器。

start()

开始播放电影。QMovie 将进入 Running 状态,并在电影播放过程中开始发出 updated()resized() 信号。

如果QMovie处于Paused状态,此函数等同于调用setPaused (false)。如果QMovie已经处于Running状态,此函数不执行任何操作。

另请参阅

stop() setPaused()

started()

这个信号在调用start()之后发出,并且QMovie已进入Running状态。

state()
Return type:

MovieState

返回QMovie的当前状态。

另请参阅

MovieState stateChanged()

stateChanged(state)
Parameters:

状态MovieState

每次电影状态发生变化时都会发出此信号。新状态由state指定。

另请参阅

state()

stop()

停止电影。QMovie进入NotRunning状态,并停止发出updated()resized()。如果再次调用start(),电影将从开头重新开始。

如果 QMovie 已经处于 NotRunning 状态,此函数不执行任何操作。

另请参阅

start() setPaused()

static supportedFormats()
Return type:

.list of QByteArray

返回QMovie支持的图像格式列表。

updated(rect)
Parameters:

rectQRect

当当前帧中的矩形 rect 被更新时,会发出此信号。您可以调用 currentImage()currentPixmap() 来获取更新帧的副本。