- 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()
定义
lastError()
定义
loopCount()
定义
scaledSize()
定义
setDevice()
定义
setFormat()
定义
speed()
定义
state()
槽函数#
定义
setPaused()
定义
setSpeed()
定义
start()
定义
stop()
信号#
定义
error()
定义
finished()
定义
resized()
定义
started()
定义
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
时直接使用,或者通过访问器函数来使用。- 属性cacheMode: QMovie.CacheMode#
此属性包含电影缓存模式。
当底层动画格式处理程序(
QMovie
依赖以解码动画数据)不支持跳转到动画中的特定帧,或者甚至无法“倒放”动画到开始位置(用于循环)时,缓存帧可能会有用。此外,如果图像数据来自顺序设备,底层动画处理程序无法搜索回已读取数据的帧(使得循环完全不可能)。为了帮助这种情况,可以指示
QMovie
对象缓存帧,这将在内存中保留帧的成本下以增加内存的使用。默认情况下,此属性设置为
CacheNone
。另见
- 属性speed: int#
警告
本节包含从C++自动翻译到Python的代码片段,可能会包含错误。
此属性包含电影的速度。
速度以原始电影速度的百分比表示。默认速度为 100%。示例
movie = QMovie("racecar.gif") movie.setSpeed(200) # 2x speed
- 访问函数
构建一个
QMovie
对象,将parent
对象传递给 QObject 的构造函数。- __init__(device[, format=QByteArray()[, parent=None]])
- 参数:
device –
QIODevice
格式 -
QByteArray
parent –
QObject
构建一个
QMovie
对象。《QMovie 会从device
中读取图像数据,它假定device
是打开且可读的。如果format
不为空,QMovie
将使用format
注明的图像格式来解码图像数据。否则,QMovie
将尝试猜测格式。parent
对象将被传递给 QObject 的构造函数。- __init__(fileName[, format=QByteArray()[, parent=None]])
- 参数:
fileName - str
格式 -
QByteArray
parent –
QObject
构建一个
QMovie
对象。《QMovie 会从fileName
中读取图像数据。如果format
不为空,QMovie
将使用format
注明的图像格式来解码图像数据。否则,QMovie
将尝试猜测格式。parent
对象将被传递给 QObject 的构造函数。返回电影的背景颜色。如果没有分配背景颜色,将返回一个无效的
QColor
。属性
cacheModeᅟ
的获取器。- currentFrameNumber()#
- 返回类型:
int
返回当前帧的序列号。电影中第一帧的编号是 0。
返回当前的帧作为一个
QImage
.返回当前的帧作为一个
QPixmap
.返回 < code class="xref py py-class docutils literal notranslate">QMovie 从中读取图像数据的设备。如果尚未分配设备,则返回 < code class="docutils literal notranslate">None 。
- error(error)#
- 参数:
错误 –
ImageReaderError
此信号在 < a class="reference internal" href="#PySide6.QtGui.QMovie" title="PySide6.QtGui.QMovie">
QMovie
播放过程中发生错误 < code class="docutils literal notranslate">error 时发射。 < a class="reference internal" href="#PySide6.QtGui.QMovie" title="PySide6.QtGui.QMovie">QMovie
将停止电影,并进入 < a class="reference internal" href="#PySide6.QtGui.QMovie.MovieState" title="PySide6.QtGui.QMovie.MovieState">NotRunning
状态。- fileName()#
- 返回类型:
str
返回 < a class="reference internal" href="#PySide6.QtGui.QMovie" title="PySide6.QtGui.QMovie">
QMovie
从中读取图像数据的文件名。如果未分配文件名或分配的设备不是文件,则返回空的 QString。- finished()#
此信号在电影播放结束时发出。
另见
- format()#
- 返回类型:
返回
QMovie
解码图像数据时使用的格式。如果没有指定格式,则返回一个空的QByteArray()。另见
- frameChanged(frameNumber)#
- 参数:
frameNumber – int
当帧号变为
frameNumber
时发出此信号。您可以通过调用currentImage()
或currentPixmap()
来获取帧的副本。- frameCount()#
- 返回类型:
int
返回电影中的帧数。
某些动画格式不支持此功能,此时返回0。
返回最后一帧的矩形。如果尚未更新任何帧,则返回一个无效的QRect。
- isValid()#
- 返回类型:
bool
如果电影有效(例如,图像数据可读并且图像格式受支持),则返回
true
;否则返回false
。有关电影为何无效的信息,请参阅
lastError()
。- jumpToFrame(frameNumber)#
- 参数:
frameNumber – int
- 返回类型:
bool
跳转到帧号
frameNumber
。成功时返回true
;否则返回false
。- jumpToNextFrame()#
- 返回类型:
bool
跳转到下一帧。成功时返回
true
;否则返回false
。- lastError()#
- 返回类型:
返回在尝试读取图像数据时发生的最新错误。
- lastErrorString()#
- 返回类型:
str
返回尝试读取图像数据时发生的最新错误的人类可读表示。
另见
- loopCount()#
- 返回类型:
int
返回电影完成之前将循环的次数。如果电影只播放一次(没有循环),则 loopCount 返回 0。如果电影无限循环,则 loopCount 返回 -1。
请注意,如果图像数据来自内存顺序设备(例如,一个套接字),则
QMovie
仅当cacheMode
设置为CacheAll
时才能循环播放电影。- nextFrameDelay()#
- 返回类型:
int
返回
QMovie
在更新动画中的下一帧之前将要等待的毫秒数。当前帧已调整大小时发出此信号。此效果有时用于动画,作为替换帧的替代方案。您可以通过调用
currentImage()
或currentPixmap()
来获取更新帧的副本。返回帧的缩放大小。
对于支持该格式的图像格式,此函数将背景颜色设置为
color
。属性
cacheMode
的设置器。将当前设备设置为
device
。当电影播放时,QMovie
将从此设备读取图像数据。- setFileName(fileName)#
- 参数:
fileName - str
将
QMovie
记录图像数据的文件名设置为fileName
。- setFormat(format)#
- 参数:
格式 -
QByteArray
将
QMovie
在解码图像数据时使用的格式设置为format
。默认情况下,QMovie
将尝试猜测图像数据的格式。可以通过调用
supportedFormats()
来获得QMovie
支持的所有格式列表。- setPaused(paused)#
- 参数:
paused – bool
如果
paused
为 true,则QMovie
将进入Paused
状态并发出stateChanged
(Paused) 信号;否则,它将进入Running
状态并发出stateChanged
(Running) 信号。另见
将缩放帧的大小设置为
size
。属性
speed
的设置器。- speed()#
- 返回类型:
int
另见
属性
speed
的获取器。- start()#
开始播放电影。
QMovie
将进入Running
状态,并随着电影的播放开始发出updated()
和resized()
信号。如果
QMovie
在Paused
状态,此函数等同于调用setPaused
(false)。如果QMovie
已经在Running
状态,此函数不执行任何操作。- started()#
此信号在调用
start()
后发出,并且QMovie
进入Running
状态。- state()#
- 返回类型:
返回
QMovie
的当前状态。- stateChanged(state)#
- 参数:
state –
MovieState
每当电影的状态改变时都会发出此信号。新的状态由
state
指定。另见
- stop()#
停止电影。
QMovie
进入NotRunning
状态,并停止发出updated()
和resized()
。如果再次调用start()
,电影将从开始处重新开始。如果
QMovie
已经处于NotRunning
状态,此函数不执行任何操作。- static supportedFormats()#
- 返回类型:
. QByteArray 列表
返回由
QMovie
支持的图像格式列表。当当前帧中的rect
rect
被更新时,会发出此信号。您可以调用currentImage()
或currentPixmap()
来获取更新后的帧副本。