PySide6.QtGui.QMovie¶
- class QMovie¶
QMovie类是一个用于通过QImageReader播放电影的便捷类。更多…概要¶
属性¶
cacheModeᅟ- 电影的缓存模式speedᅟ- 电影的速度
方法¶
def
__init__()def
cacheMode()def
currentImage()def
currentPixmap()def
device()def
fileName()def
format()def
frameCount()def
frameRect()def
isValid()def
jumpToFrame()def
lastError()def
loopCount()def
nextFrameDelay()def
scaledSize()def
setCacheMode()def
setDevice()def
setFileName()def
setFormat()def
setScaledSize()def
speed()def
state()
插槽¶
def
setPaused()def
setSpeed()def
start()def
stop()
信号¶
def
error()def
finished()def
frameChanged()def
resized()def
started()def
stateChanged()def
updated()
静态函数¶
注意
本文档可能包含从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支持的格式列表。另请参阅
注意
当使用
from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。- property cacheModeᅟ: QMovie.CacheMode¶
此属性保存电影的缓存模式。
当
QMovie依赖的底层动画格式处理程序不支持跳转到动画中的特定帧,甚至不支持将动画“倒回”到开头(用于循环播放)时,缓存帧可能会很有用。此外,如果图像数据来自顺序设备,底层动画处理程序无法回退到已经读取数据的帧(使得循环播放完全不可能)。为了帮助处理这种情况,可以指示
QMovie对象缓存帧,但需要承担在对象生命周期内将帧保留在内存中的额外内存成本。默认情况下,此属性设置为
CacheNone。另请参阅
- Access functions:
- property speedᅟ: int¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
此属性保存电影的速度。
速度以原始电影速度的百分比来衡量。默认速度为100%。示例:
movie = QMovie("racecar.gif") movie.setSpeed(200) # 2x speed
- Access functions:
构造一个
QMovie对象,将parent对象传递给QObject的构造函数。- __init__(device[, format=QByteArray()[, parent=None]])
- Parameters:
设备 –
QIODeviceformat –
QByteArrayparent –
QObject
构造一个
QMovie对象。QMovie将从device读取图像数据,它假设该设备是打开且可读的。如果format不为空,QMovie将使用图像格式format来解码图像数据。否则,QMovie将尝试猜测格式。parent对象被传递给 QObject 的构造函数。- __init__(fileName[, format=QByteArray()[, parent=None]])
- Parameters:
fileName – str
format –
QByteArrayparent –
QObject
构造一个
QMovie对象。QMovie将从fileName读取图像数据。如果format不为空,QMovie将使用图像格式format来解码图像数据。否则,QMovie将尝试猜测格式。parent对象被传递给 QObject 的构造函数。返回电影的背景颜色。如果未分配背景颜色,则返回无效的
QColor。另请参阅
- cacheMode()¶
- Return type:
另请参阅
属性
cacheModeᅟ的获取器。- currentFrameNumber()¶
- Return type:
整数
返回当前帧的序列号。电影中的第一帧的编号为0。
返回当前帧作为
QImage。另请参阅
返回当前帧作为
QPixmap。另请参阅
返回设备
QMovie读取图像数据的来源。如果当前没有分配设备,则返回None。另请参阅
- error(error)¶
- Parameters:
错误 –
ImageReaderError
当播放过程中发生错误
error时,QMovie会发出此信号。QMovie将停止播放电影,并进入NotRunning状态。- fileName()¶
- Return type:
字符串
返回
QMovie读取图像数据的文件名。如果未分配文件名,或者分配的设备不是文件,则返回一个空的QString。另请参阅
- finished()¶
当电影播放完毕时,会发出此信号。
另请参阅
- format()¶
- Return type:
返回
QMovie在解码图像数据时使用的格式。如果未分配格式,则返回空的QByteArray()。另请参阅
- frameChanged(frameNumber)¶
- Parameters:
frameNumber – int
当帧号更改为
frameNumber时,会发出此信号。您可以调用currentImage()或currentPixmap()来获取帧的副本。- frameCount()¶
- Return type:
整数
返回电影中的帧数。
某些动画格式不支持此功能,在这种情况下返回0。
返回最后一帧的矩形。如果尚未更新任何帧,则返回无效的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:
返回尝试读取图像数据时发生的最新错误。
另请参阅
- lastErrorString()¶
- Return type:
字符串
返回最近尝试读取图像数据时发生错误的人类可读表示。
另请参阅
- loopCount()¶
- Return type:
整数
返回电影在结束前循环播放的次数。如果电影只播放一次(不循环),loopCount 返回 0。如果电影无限循环,loopCount 返回 -1。
请注意,如果图像数据来自顺序设备(例如套接字),
QMovie只有在cacheMode设置为CacheAll时才能循环播放电影。- nextFrameDelay()¶
- Return type:
整数
返回
QMovie在更新动画中的下一帧之前将等待的毫秒数。当当前帧被调整为
size时,会发出此信号。这种效果有时在动画中用作替换帧的替代方法。您可以调用currentImage()或currentPixmap()来获取更新后的帧的副本。返回帧的缩放大小。
对于支持此功能的图像格式,此函数将背景颜色设置为
color。另请参阅
属性
cacheModeᅟ的设置器。将当前设备设置为
device。QMovie在电影运行时将从该设备读取图像数据。另请参阅
- setFileName(fileName)¶
- Parameters:
fileName – str
设置
QMovie读取图像数据的文件名,为fileName。- setFormat(format)¶
- Parameters:
format –
QByteArray
设置
QMovie在解码图像数据时将使用的格式为format。默认情况下,QMovie会尝试猜测图像数据的格式。你可以调用
supportedFormats()来获取QMovie支持的所有格式的完整列表。- setPaused(paused)¶
- Parameters:
暂停 – bool
如果
paused为真,QMovie将进入Paused状态并发出stateChanged(Paused);否则它将进入Running状态并发出stateChanged(Running)。另请参阅
将缩放后的帧大小设置为
size。属性
speedᅟ的设置器。- speed()¶
- Return type:
整数
另请参阅
属性
speedᅟ的获取器。- start()¶
开始播放电影。
QMovie将进入Running状态,并在电影播放过程中开始发出updated()和resized()信号。如果
QMovie处于Paused状态,此函数等同于调用setPaused(false)。如果QMovie已经处于Running状态,此函数不执行任何操作。另请参阅
- started()¶
这个信号在调用
start()之后发出,并且QMovie已进入Running状态。- state()¶
- Return type:
返回
QMovie的当前状态。另请参阅
- stateChanged(state)¶
- Parameters:
状态 –
MovieState
每次电影状态发生变化时都会发出此信号。新状态由
state指定。另请参阅
- stop()¶
停止电影。
QMovie进入NotRunning状态,并停止发出updated()和resized()。如果再次调用start(),电影将从开头重新开始。如果
QMovie已经处于NotRunning状态,此函数不执行任何操作。另请参阅
- static supportedFormats()¶
- Return type:
.list of QByteArray
返回
QMovie支持的图像格式列表。当当前帧中的矩形
rect被更新时,会发出此信号。您可以调用currentImage()或currentPixmap()来获取更新帧的副本。