QMovie¶
The
QMovieclass is a convenience class for playing movies withQImageReader. 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. If you want to display video and media content, use the Qt Multimedia multimedia framework instead.
First, create a
QMovieobject by passing either the name of a file or a pointer to aQIODevicecontaining an animated image format toQMovie‘s constructor. You can callisValid()to check if the image data is valid, before starting the movie. To start the movie, callstart().QMoviewill enterRunningstate, and emitstarted()andstateChanged(). To get the current state of the movie, callstate().To display the movie in your application, you can pass your
QMovieobject tosetMovie(). Example:label = QLabel() movie = QMovie("animations/fire.gif") label.setMovie(movie) movie.start()Whenever a new frame is available in the movie,
QMoviewill emitupdated(). If the size of the frame changes,resized()is emitted. You can callcurrentImage()orcurrentPixmap()to get a copy of the current frame. When the movie is done,QMovieemitsfinished(). If any error occurs during playback (i.e, the image file is corrupt),QMoviewill emiterror().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 callingsetPaused(true).QMoviewill then enterPausedstate and emitstateChanged(). If you callsetPaused(false),QMoviewill reenterRunningstate and start the movie again. To stop the movie, callstop().Certain animation formats allow you to set the background color. You can call
setBackgroundColor()to set the color, orbackgroundColor()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 callloopCount()to get the number of times the movie should loop before finishing.nextFrameDelay()returns the number of milliseconds the current frame should be displayed.
QMoviecan be instructed to cache frames of an animation by callingsetCacheMode().Call
supportedFormats()for a list of formats thatQMoviesupports.See also
QLabelQImageReaderMovie 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:
- param format:
- param device:
- param fileName:
str
Constructs a
QMovieobject, passing theparentobject toQObject‘s constructor.See also
- 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 afterstop()has been called or the movie is finished.QMovie.Paused
The movie is paused, and
QMoviestops 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.
- 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:
Returns the background color of the movie. If no background color has been assigned, an invalid
QColoris returned.See also
- PySide2.QtGui.QMovie.cacheMode()¶
- Return type:
This property holds the movie’s cache mode.
Caching frames can be useful when the underlying animation format handler that
QMovierelies 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
QMovieobject 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.currentPixmap()¶
- Return type:
Returns the current frame as a
QPixmap.See also
- PySide2.QtGui.QMovie.device()¶
- Return type:
Returns the device
QMoviereads image data from. If no device has currently been assigned,Noneis returned.See also
- PySide2.QtGui.QMovie.error(error)¶
- Parameters:
error –
ImageReaderError
- PySide2.QtGui.QMovie.fileName()¶
- Return type:
str
Returns the name of the file that
QMoviereads image data from. If no file name has been assigned, or if the assigned device is not a file, an emptyQStringis returned.See also
- PySide2.QtGui.QMovie.finished()¶
- PySide2.QtGui.QMovie.format()¶
- Return type:
Returns the format that
QMovieuses when decoding image data. If no format has been assigned, an empty QByteArray() is returned.See also
- 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:
Returns the rect of the last frame. If no frame has yet been updated, an invalid
QRectis returned.See also
- PySide2.QtGui.QMovie.isValid()¶
- Return type:
bool
Returns
trueif the movie is valid (e.g., the image data is readable and the image format is supported); otherwise returnsfalse.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. Returnstrueon success; otherwise returnsfalse.
- PySide2.QtGui.QMovie.jumpToNextFrame()¶
- Return type:
bool
Jumps to the next frame. Returns
trueon success; otherwise returnsfalse.
- PySide2.QtGui.QMovie.lastError()¶
- Return type:
Returns the most recent error that occurred while attempting to read image data.
See also
- 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
- 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),
QMoviecan only loop the movie if thecacheModeis set toCacheAll.
- PySide2.QtGui.QMovie.nextFrameDelay()¶
- Return type:
int
Returns the number of milliseconds
QMoviewill wait before updating the next frame in the animation.
- PySide2.QtGui.QMovie.resized(size)¶
- Parameters:
size –
PySide2.QtCore.QSize
- PySide2.QtGui.QMovie.scaledSize()¶
- Return type:
Returns the scaled size of frames.
See also
- PySide2.QtGui.QMovie.setBackgroundColor(color)¶
- Parameters:
color –
PySide2.QtGui.QColor
For image formats that support it, this function sets the background color to
color.See also
- PySide2.QtGui.QMovie.setCacheMode(mode)¶
- Parameters:
mode –
CacheMode
This property holds the movie’s cache mode.
Caching frames can be useful when the underlying animation format handler that
QMovierelies 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
QMovieobject 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:
device –
PySide2.QtCore.QIODevice
Sets the current device to
device.QMoviewill read image data from this device when the movie is running.See also
- PySide2.QtGui.QMovie.setFileName(fileName)¶
- Parameters:
fileName – str
Sets the name of the file that
QMoviereads image data from, tofileName.See also
- PySide2.QtGui.QMovie.setFormat(format)¶
- Parameters:
format –
PySide2.QtCore.QByteArray
Sets the format that
QMoviewill use when decoding image data, toformat. By default,QMoviewill attempt to guess the format of the image data.You can call
supportedFormats()for the full list of formatsQMoviesupports.See also
- PySide2.QtGui.QMovie.setPaused(paused)¶
- Parameters:
paused – bool
If
pausedis true,QMoviewill enterPausedstate and emitstateChanged(Paused); otherwise it will enterRunningstate and emitstateChanged(Running).See also
- PySide2.QtGui.QMovie.setScaledSize(size)¶
- Parameters:
size –
PySide2.QtCore.QSize
Sets the scaled frame size to
size.See also
- 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.
QMoviewill enterRunningstate, and start emittingupdated()andresized()as the movie progresses.If
QMovieis in thePausedstate, this function is equivalent to callingsetPaused(false). IfQMovieis already in theRunningstate, this function does nothing.See also
- PySide2.QtGui.QMovie.started()¶
- PySide2.QtGui.QMovie.state()¶
- Return type:
Returns the current state of
QMovie.See also
MovieStatestateChanged()
- PySide2.QtGui.QMovie.stateChanged(state)¶
- Parameters:
state –
MovieState
- PySide2.QtGui.QMovie.stop()¶
Stops the movie.
QMovieentersNotRunningstate, and stops emittingupdated()andresized(). Ifstart()is called again, the movie will restart from the beginning.If
QMovieis already in theNotRunningstate, this function does nothing.See also
- static PySide2.QtGui.QMovie.supportedFormats()¶
- Return type:
Returns the list of image formats supported by
QMovie.See also
- PySide2.QtGui.QMovie.updated(rect)¶
- Parameters:
rect –
PySide2.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.