QMovie¶
The QMovie
class is a convenience class for playing movies with QImageReader
. More…
Synopsis¶
Functions¶
def
backgroundColor
()def
cacheMode
()def
currentFrameNumber
()def
currentImage
()def
currentPixmap
()def
device
()def
fileName
()def
format
()def
frameCount
()def
frameRect
()def
isValid
()def
jumpToFrame
(frameNumber)def
lastError
()def
lastErrorString
()def
loopCount
()def
nextFrameDelay
()def
scaledSize
()def
setBackgroundColor
(color)def
setCacheMode
(mode)def
setDevice
(device)def
setFileName
(fileName)def
setFormat
(format)def
setScaledSize
(size)def
speed
()def
state
()
Slots¶
def
jumpToNextFrame
()def
setPaused
(paused)def
setSpeed
(percentSpeed)def
start
()def
stop
()
Signals¶
def
error
(error)def
finished
()def
frameChanged
(frameNumber)def
resized
(size)def
started
()def
stateChanged
(state)def
updated
(rect)
Static functions¶
def
supportedFormats
()
Detailed Description¶
This class is used to show simple animations without sound.
First, create a QMovie
object by passing either the name of a file or a pointer to a QIODevice
containing an animated image format to QMovie
‘s constructor. You can call isValid()
to check if the image data is valid, before starting the movie. To start the movie, call start()
. QMovie
will enter Running
state, and emit started()
and stateChanged()
. To get the current state of the movie, call state()
.
To display the movie in your application, you can pass your QMovie
object to setMovie()
. Example:
label = QLabel() movie = QMovie("animations/fire.gif") label.setMovie(movie) movie.start()
Whenever a new frame is available in the movie, QMovie
will emit updated()
. If the size of the frame changes, resized()
is emitted. You can call currentImage()
or currentPixmap()
to get a copy of the current frame. When the movie is done, QMovie
emits finished()
. If any error occurs during playback (i.e, the image file is corrupt), QMovie
will emit error()
.
You can control the speed of the movie playback by calling setSpeed()
, which takes the percentage of the original speed as an argument. Pause the movie by calling setPaused
(true). QMovie
will then enter Paused
state and emit stateChanged()
. If you call setPaused
(false), QMovie
will reenter Running
state and start the movie again. To stop the movie, call stop()
.
Certain animation formats allow you to set the background color. You can call setBackgroundColor()
to set the color, or backgroundColor()
to retrieve the current background color.
currentFrameNumber()
returns the sequence number of the current frame. The first frame in the animation has the sequence number 0. frameCount()
returns the total number of frames in the animation, if the image format supports this. You can call loopCount()
to get the number of times the movie should loop before finishing. nextFrameDelay()
returns the number of milliseconds the current frame should be displayed.
QMovie
can be instructed to cache frames of an animation by calling setCacheMode()
.
Call supportedFormats()
for a list of formats that QMovie
supports.
See also
QLabel
QImageReader
Movie Example
- class PySide6.QtGui.QMovie(device[, format=QByteArray()[, parent=None]])¶
PySide6.QtGui.QMovie([parent=None])
PySide6.QtGui.QMovie(fileName[, format=QByteArray()[, parent=None]])
- Parameters
fileName – str
device –
PySide6.QtCore.QIODevice
format –
PySide6.QtCore.QByteArray
parent –
PySide6.QtCore.QObject
Constructs a QMovie
object. QMovie
will use read image data from device
, which it assumes is open and readable. If format
is not empty, QMovie
will use the image format format
for decoding the image data. Otherwise, QMovie
will attempt to guess the format.
The parent
object is passed to QObject
‘s constructor.
Constructs a QMovie
object, passing the parent
object to QObject
‘s constructor.
See also
Constructs a QMovie
object. QMovie
will use read image data from fileName
. If format
is not empty, QMovie
will use the image format format
for decoding the image data. Otherwise, QMovie
will attempt to guess the format.
The parent
object is passed to QObject
‘s constructor.
- PySide6.QtGui.QMovie.MovieState¶
This enum describes the different states of QMovie
.
Constant
Description
QMovie.NotRunning
The movie is not running. This is
QMovie
‘s initial state, and the state it enters afterstop()
has been called or the movie is finished.QMovie.Paused
The movie is paused, and
QMovie
stops emittingupdated()
orresized()
. This state is entered after calling pause() orsetPaused
(true). The current frame number it kept, and the movie will continue with the next frame when unpause() orsetPaused
(false) is called.QMovie.Running
The movie is running.
- PySide6.QtGui.QMovie.CacheMode¶
This enum describes the different cache modes of QMovie
.
Constant
Description
QMovie.CacheNone
No frames are cached (the default).
QMovie.CacheAll
All frames are cached.
- PySide6.QtGui.QMovie.backgroundColor()¶
- Return type
Returns the background color of the movie. If no background color has been assigned, an invalid QColor
is returned.
See also
This property holds the movie’s cache mode.
Caching frames can be useful when the underlying animation format handler that QMovie
relies on to decode the animation data does not support jumping to particular frames in the animation, or even “rewinding” the animation to the beginning (for looping). Furthermore, if the image data comes from a sequential device, it is not possible for the underlying animation handler to seek back to frames whose data has already been read (making looping altogether impossible).
To aid in such situations, a QMovie
object can be instructed to cache the frames, at the added memory cost of keeping the frames in memory for the lifetime of the object.
By default, this property is set to CacheNone
.
See also
CacheMode
- PySide6.QtGui.QMovie.currentFrameNumber()¶
- Return type
int
Returns the sequence number of the current frame. The number of the first frame in the movie is 0.
- PySide6.QtGui.QMovie.currentImage()¶
- Return type
Returns the current frame as a QImage
.
See also
- PySide6.QtGui.QMovie.currentPixmap()¶
- Return type
Returns the current frame as a QPixmap
.
See also
- PySide6.QtGui.QMovie.device()¶
- Return type
Returns the device QMovie
reads image data from. If no device has currently been assigned, None
is returned.
See also
- PySide6.QtGui.QMovie.error(error)¶
- Parameters
error –
ImageReaderError
- PySide6.QtGui.QMovie.fileName()¶
- Return type
str
Returns the name of the file that QMovie
reads image data from. If no file name has been assigned, or if the assigned device is not a file, an empty QString
is returned.
See also
- PySide6.QtGui.QMovie.finished()¶
- PySide6.QtGui.QMovie.format()¶
- Return type
Returns the format that QMovie
uses when decoding image data. If no format has been assigned, an empty QByteArray() is returned.
See also
- PySide6.QtGui.QMovie.frameChanged(frameNumber)¶
- Parameters
frameNumber – int
- PySide6.QtGui.QMovie.frameCount()¶
- Return type
int
Returns the number of frames in the movie.
Certain animation formats do not support this feature, in which case 0 is returned.
- PySide6.QtGui.QMovie.frameRect()¶
- Return type
Returns the rect of the last frame. If no frame has yet been updated, an invalid QRect
is returned.
See also
- PySide6.QtGui.QMovie.isValid()¶
- Return type
bool
Returns true
if the movie is valid (e.g., the image data is readable and the image format is supported); otherwise returns false
.
For information about why the movie is not valid, see lastError()
.
- PySide6.QtGui.QMovie.jumpToFrame(frameNumber)¶
- Parameters
frameNumber – int
- Return type
bool
Jumps to frame number frameNumber
. Returns true
on success; otherwise returns false
.
- PySide6.QtGui.QMovie.jumpToNextFrame()¶
- Return type
bool
Jumps to the next frame. Returns true
on success; otherwise returns false
.
- PySide6.QtGui.QMovie.lastError()¶
- Return type
Returns the most recent error that occurred while attempting to read image data.
See also
- PySide6.QtGui.QMovie.lastErrorString()¶
- Return type
str
Returns a human-readable representation of the most recent error that occurred while attempting to read image data.
See also
- PySide6.QtGui.QMovie.loopCount()¶
- Return type
int
Returns the number of times the movie will loop before it finishes. If the movie will only play once (no looping), returns 0. If the movie loops forever, returns -1.
Note that, if the image data comes from a sequential device (e.g. a socket), QMovie
can only loop the movie if the cacheMode
is set to CacheAll
.
- PySide6.QtGui.QMovie.nextFrameDelay()¶
- Return type
int
Returns the number of milliseconds QMovie
will wait before updating the next frame in the animation.
- PySide6.QtGui.QMovie.resized(size)¶
- Parameters
size –
PySide6.QtCore.QSize
- PySide6.QtGui.QMovie.scaledSize()¶
- Return type
Returns the scaled size of frames.
See also
- PySide6.QtGui.QMovie.setBackgroundColor(color)¶
- Parameters
color –
PySide6.QtGui.QColor
For image formats that support it, this function sets the background color to color
.
See also
This property holds the movie’s cache mode.
Caching frames can be useful when the underlying animation format handler that QMovie
relies on to decode the animation data does not support jumping to particular frames in the animation, or even “rewinding” the animation to the beginning (for looping). Furthermore, if the image data comes from a sequential device, it is not possible for the underlying animation handler to seek back to frames whose data has already been read (making looping altogether impossible).
To aid in such situations, a QMovie
object can be instructed to cache the frames, at the added memory cost of keeping the frames in memory for the lifetime of the object.
By default, this property is set to CacheNone
.
See also
CacheMode
- PySide6.QtGui.QMovie.setDevice(device)¶
- Parameters
device –
PySide6.QtCore.QIODevice
Sets the current device to device
. QMovie
will read image data from this device when the movie is running.
See also
- PySide6.QtGui.QMovie.setFileName(fileName)¶
- Parameters
fileName – str
Sets the name of the file that QMovie
reads image data from, to fileName
.
See also
- PySide6.QtGui.QMovie.setFormat(format)¶
- Parameters
format –
PySide6.QtCore.QByteArray
Sets the format that QMovie
will use when decoding image data, to format
. By default, QMovie
will attempt to guess the format of the image data.
You can call supportedFormats()
for the full list of formats QMovie
supports.
See also
- PySide6.QtGui.QMovie.setPaused(paused)¶
- Parameters
paused – bool
If paused
is true, QMovie
will enter Paused
state and emit stateChanged
(Paused); otherwise it will enter Running
state and emit stateChanged
(Running).
See also
- PySide6.QtGui.QMovie.setScaledSize(size)¶
- Parameters
size –
PySide6.QtCore.QSize
Sets the scaled frame size to size
.
See also
- PySide6.QtGui.QMovie.setSpeed(percentSpeed)¶
- Parameters
percentSpeed – int
This property holds the movie’s speed.
The speed is measured in percentage of the original movie speed. The default speed is 100%. Example:
movie = QMovie("racecar.gif") movie.setSpeed(200) # 2x speed
- PySide6.QtGui.QMovie.speed()¶
- Return type
int
This property holds the movie’s speed.
The speed is measured in percentage of the original movie speed. The default speed is 100%. Example:
movie = QMovie("racecar.gif") movie.setSpeed(200) # 2x speed
- PySide6.QtGui.QMovie.start()¶
Starts the movie. QMovie
will enter Running
state, and start emitting updated()
and resized()
as the movie progresses.
If QMovie
is in the Paused
state, this function is equivalent to calling setPaused
(false). If QMovie
is already in the Running
state, this function does nothing.
See also
- PySide6.QtGui.QMovie.started()¶
- PySide6.QtGui.QMovie.state()¶
- Return type
Returns the current state of QMovie
.
See also
MovieState
stateChanged()
- PySide6.QtGui.QMovie.stateChanged(state)¶
- Parameters
state –
MovieState
- PySide6.QtGui.QMovie.stop()¶
Stops the movie. QMovie
enters NotRunning
state, and stops emitting updated()
and resized()
. If start()
is called again, the movie will restart from the beginning.
If QMovie
is already in the NotRunning
state, this function does nothing.
See also
- static PySide6.QtGui.QMovie.supportedFormats()¶
- Return type
Returns the list of image formats supported by QMovie
.
See also
- PySide6.QtGui.QMovie.updated(rect)¶
- Parameters
rect –
PySide6.QtCore.QRect
© 2022 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.