QMovie

The QMovie class is a convenience class for playing movies with QImageReader . More

Inheritance diagram of PySide2.QtGui.QMovie

Synopsis

Functions

Slots

Signals

Static functions

Detailed Description

This class is used to show simple animations without sound. If you want to display video and media content, use the Qt Multimedia multimedia framework instead.

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 PySide2.QtGui.QMovie(device[, format=QByteArray()[, parent=None]])

PySide2.QtGui.QMovie([parent=None])

PySide2.QtGui.QMovie(fileName[, format=QByteArray()[, parent=None]])

param parent:

PySide2.QtCore.QObject

param format:

PySide2.QtCore.QByteArray

param device:

PySide2.QtCore.QIODevice

param fileName:

str

Constructs a QMovie object, passing the parent object to QObject ‘s constructor.

PySide2.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 after stop() has been called or the movie is finished.

QMovie.Paused

The movie is paused, and QMovie stops emitting updated() or resized() . This state is entered after calling pause() or setPaused (true). The current frame number it kept, and the movie will continue with the next frame when unpause() or setPaused (false) is called.

QMovie.Running

The movie is running.

PySide2.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.

PySide2.QtGui.QMovie.backgroundColor()
Return type:

PySide2.QtGui.QColor

Returns the background color of the movie. If no background color has been assigned, an invalid QColor is returned.

PySide2.QtGui.QMovie.cacheMode()
Return type:

CacheMode

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

PySide2.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.

PySide2.QtGui.QMovie.currentImage()
Return type:

PySide2.QtGui.QImage

Returns the current frame as a QImage .

PySide2.QtGui.QMovie.currentPixmap()
Return type:

PySide2.QtGui.QPixmap

Returns the current frame as a QPixmap .

PySide2.QtGui.QMovie.device()
Return type:

PySide2.QtCore.QIODevice

Returns the device QMovie reads image data from. If no device has currently been assigned, None is returned.

PySide2.QtGui.QMovie.error(error)
Parameters:

errorImageReaderError

PySide2.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.

PySide2.QtGui.QMovie.finished()
PySide2.QtGui.QMovie.format()
Return type:

PySide2.QtCore.QByteArray

Returns the format that QMovie uses when decoding image data. If no format has been assigned, an empty QByteArray() is returned.

See also

setFormat()

PySide2.QtGui.QMovie.frameChanged(frameNumber)
Parameters:

frameNumber – int

PySide2.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.

PySide2.QtGui.QMovie.frameRect()
Return type:

PySide2.QtCore.QRect

Returns the rect of the last frame. If no frame has yet been updated, an invalid QRect is returned.

PySide2.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() .

PySide2.QtGui.QMovie.jumpToFrame(frameNumber)
Parameters:

frameNumber – int

Return type:

bool

Jumps to frame number frameNumber . Returns true on success; otherwise returns false .

PySide2.QtGui.QMovie.jumpToNextFrame()
Return type:

bool

Jumps to the next frame. Returns true on success; otherwise returns false .

PySide2.QtGui.QMovie.lastError()
Return type:

ImageReaderError

Returns the most recent error that occurred while attempting to read image data.

PySide2.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

lastError()

PySide2.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 .

PySide2.QtGui.QMovie.nextFrameDelay()
Return type:

int

Returns the number of milliseconds QMovie will wait before updating the next frame in the animation.

PySide2.QtGui.QMovie.resized(size)
Parameters:

sizePySide2.QtCore.QSize

PySide2.QtGui.QMovie.scaledSize()
Return type:

PySide2.QtCore.QSize

Returns the scaled size of frames.

PySide2.QtGui.QMovie.setBackgroundColor(color)
Parameters:

colorPySide2.QtGui.QColor

For image formats that support it, this function sets the background color to color .

PySide2.QtGui.QMovie.setCacheMode(mode)
Parameters:

modeCacheMode

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

PySide2.QtGui.QMovie.setDevice(device)
Parameters:

devicePySide2.QtCore.QIODevice

Sets the current device to device . QMovie will read image data from this device when the movie is running.

PySide2.QtGui.QMovie.setFileName(fileName)
Parameters:

fileName – str

Sets the name of the file that QMovie reads image data from, to fileName .

PySide2.QtGui.QMovie.setFormat(format)
Parameters:

formatPySide2.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.

PySide2.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

state()

PySide2.QtGui.QMovie.setScaledSize(size)
Parameters:

sizePySide2.QtCore.QSize

Sets the scaled frame size to size .

PySide2.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
PySide2.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
PySide2.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

stop() setPaused()

PySide2.QtGui.QMovie.started()
PySide2.QtGui.QMovie.state()
Return type:

MovieState

Returns the current state of QMovie .

See also

MovieState stateChanged()

PySide2.QtGui.QMovie.stateChanged(state)
Parameters:

stateMovieState

PySide2.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

start() setPaused()

static PySide2.QtGui.QMovie.supportedFormats()
Return type:

Returns the list of image formats supported by QMovie .

PySide2.QtGui.QMovie.updated(rect)
Parameters:

rectPySide2.QtCore.QRect