QMovie Class Reference

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

  1. #include <QMovie>

Inherits: QObject.

Detailed Description

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

This class is used to show simple animations without sound. If you want to display video and media content, use the Phonon 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 QLabel::setMovie(). Example:

  1.                 QLabel label;
  2. QMovie *movie = new QMovie("animations/fire.gif");
  3.  
  4. label.setMovie(movie);
  5. 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, and Movie Example.

Public Types

Toggle detailsenum QMovie::

CacheModeCacheMode { CacheNone , CacheAll 1 ...} { CacheNone , CacheAll 1 }

This enum describes the different cache modes of QMovie.

ConstantValueDescription
QMovie::CacheNone 0 No frames are cached (the default).
QMovie::CacheAll 1 All frames are cached.

Look up this member in the source code.

Toggle detailsenum QMovie::

MovieStateMovieState { NotRunning , Paused , Running 2 ...} { NotRunning , Paused , Running 2 }

This enum describes the different states of QMovie.

ConstantValueDescription
QMovie::NotRunning 0 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 1 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 2 The movie is running.

Look up this member in the source code.

    Properties

    Toggle detailscacheModecacheMode : 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 QMovie::CacheMode.

    Access functions:

    Look up this member in the source code.

    Toggle detailsspeedspeed : 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:

    1.                     QMovie movie("racecar.gif");
    2. movie.setSpeed(200); // 2x speed

    Access functions:

    Look up this member in the source code.

      Public Functions

      Toggle details QMovie

      QMovieQMovie ( QObject *parent=0 ) ( QObject *parent=0 )

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

      See also setFileName(), setDevice(), and setFormat().

      Look up this member in the source code.

      Toggle details QMovie

      QMovieQMovie ( QIODevice *device , const QByteArray &format=QByteArray() , QObject *parent=0 ...) ( QIODevice *device , const QByteArray &format=QByteArray() , QObject *parent=0 )

      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.

      Look up this member in the source code.

      Toggle details QMovie

      QMovieQMovie ( const QString &fileName , const QByteArray &format=QByteArray() , QObject *parent=0 ...) ( const QString &fileName , const QByteArray &format=QByteArray() , QObject *parent=0 )

      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.

      Look up this member in the source code.

      Toggle details QMovie

      ~QMovie~QMovie () ()

      Destructs the QMovie object.

      Look up this member in the source code.

      Toggle details QColor QMovie

      backgroundColorbackgroundColor () ()const

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

      See also setBackgroundColor().

      Look up this member in the source code.

      Toggle details int QMovie

      currentFrameNumbercurrentFrameNumber () ()const

      Returns the sequence number of the current frame. The number of the first frame in the movie is 0.

      Look up this member in the source code.

      Toggle details QImage QMovie

      currentImagecurrentImage () ()const

      Returns the current frame as a QImage.

      See also currentPixmap() and updated().

      Look up this member in the source code.

      Toggle details QPixmap QMovie

      currentPixmapcurrentPixmap () ()const

      Returns the current frame as a QPixmap.

      See also currentImage() and updated().

      Look up this member in the source code.

      Toggle details QIODevice * QMovie

      devicedevice () ()const

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

      See also setDevice() and fileName().

      Look up this member in the source code.

      Toggle details QString QMovie

      fileNamefileName () ()const

      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 setFileName() and device().

      Look up this member in the source code.

      Toggle details QByteArray QMovie

      formatformat () ()const

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

      See also setFormat().

      Look up this member in the source code.

      Toggle details int QMovie

      frameCountframeCount () ()const

      Returns the number of frames in the movie.

      Certain animation formats do not support this feature, in which case 0 is returned.

      Look up this member in the source code.

      Toggle details QRect QMovie

      frameRectframeRect () ()const

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

      See also currentImage() and currentPixmap().

      Look up this member in the source code.

      Toggle details bool QMovie

      isValidisValid () ()const

      Returns true if the movie is valid (e.g., the image data is readable and the image format is supported); otherwise returns false.

      Look up this member in the source code.

      Toggle details bool QMovie

      jumpToFramejumpToFrame ( int frameNumber ) ( int frameNumber )

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

      Look up this member in the source code.

      Toggle details int QMovie

      loopCountloopCount () ()const

      Returns the number of times the movie will loop before it finishes. If the movie will only play once (no looping), loopCount returns 0. If the movie loops forever, loopCount 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 QMovie::CacheAll.

      Look up this member in the source code.

      Toggle details int QMovie

      nextFrameDelaynextFrameDelay () ()const

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

      Look up this member in the source code.

      Toggle details QSize QMovie

      scaledSizescaledSize () ()

      Returns the scaled size of frames.

      See also setScaledSize() and QImageReader::scaledSize().

      Look up this member in the source code.

      Toggle details void QMovie

      setBackgroundColorsetBackgroundColor ( const QColor &color ) ( const QColor &color )

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

      See also backgroundColor().

      Look up this member in the source code.

      Toggle details void QMovie

      setDevicesetDevice ( QIODevice *device ) ( QIODevice *device )

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

      See also device() and setFormat().

      Look up this member in the source code.

      Toggle details void QMovie

      setFileNamesetFileName ( const QString &fileName ) ( const QString &fileName )

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

      See also fileName(), setDevice(), and setFormat().

      Look up this member in the source code.

      Toggle details void QMovie

      setFormatsetFormat ( const QByteArray &format ) ( const QByteArray &format )

      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 format() and QImageReader::supportedImageFormats().

      Look up this member in the source code.

      Toggle details void QMovie

      setScaledSizesetScaledSize ( const QSize &size ) ( const QSize &size )

      Sets the scaled frame size to size.

      See also scaledSize() and QImageReader::setScaledSize().

      Look up this member in the source code.

      Toggle details MovieState QMovie

      statestate () ()const

      Returns the current state of QMovie.

      See also MovieState and stateChanged().

      Look up this member in the source code.

      Toggle details QList <QByteArray > QMovie

      supportedFormatssupportedFormats () () [static]

      Returns the list of image formats supported by QMovie.

      See also QImageReader::supportedImageFormats().

      Look up this member in the source code.

      Toggle details bool QMovie

      finishedfinished () ()const Qt3-support

      Use state() instead.

      Look up this member in the source code.

      Toggle details QImage QMovie

      frameImageframeImage () ()const Qt3-support

      Use currentImage() instead.

      Look up this member in the source code.

      Toggle details int QMovie

      frameNumberframeNumber () ()const Qt3-support

      Use currentFrameNumber() instead.

      Look up this member in the source code.

      Toggle details QPixmap QMovie

      framePixmapframePixmap () ()const Qt3-support

      Use currentPixmap() instead.

      Look up this member in the source code.

      Toggle details bool QMovie

      isNullisNull () ()const Qt3-support

      Use isValid() instead.

      Look up this member in the source code.

      Toggle details void QMovie

      pausepause () () Qt3-support

      Use setPaused(true) instead.

      Look up this member in the source code.

      Toggle details bool QMovie

      pausedpaused () ()const Qt3-support

      Use state() instead.

      See also setPaused().

      Look up this member in the source code.

      Toggle details void QMovie

      restartrestart () () Qt3-support

      Use stop() and start() instead.

      Look up this member in the source code.

      Toggle details bool QMovie

      runningrunning () ()const Qt3-support

      Use state() instead.

      Look up this member in the source code.

      Toggle details void QMovie

      stepstep () () Qt3-support

      Use jumpToNextFrame() instead.

      Look up this member in the source code.

      Toggle details void QMovie

      unpauseunpause () () Qt3-support

      Use setPaused(false) instead.

      Look up this member in the source code.

      Signals

      Toggle details void QMovie

      errorerror ( QImageReader::ImageReaderError error ) ( QImageReader::ImageReaderError error ) [signal]

      This signal is emitted by QMovie when the error error occurred during playback. QMovie will stop the movie, and enter QMovie::NotRunning state.

      Look up this member in the source code.

      Toggle details void QMovie

      finishedfinished () () [signal]

      This signal is emitted when the movie has finished.

      See also QMovie::stop().

      Look up this member in the source code.

      Toggle details void QMovie

      frameChangedframeChanged ( int frameNumber ) ( int frameNumber ) [signal]

      This signal is emitted when the frame number has changed to frameNumber. You can call currentImage() or currentPixmap() to get a copy of the frame.

      Look up this member in the source code.

      Toggle details void QMovie

      resizedresized ( const QSize &size ) ( const QSize &size ) [signal]

      This signal is emitted when the current frame has been resized to size. This effect is sometimes used in animations as an alternative to replacing the frame. You can call currentImage() or currentPixmap() to get a copy of the updated frame.

      Look up this member in the source code.

      Toggle details void QMovie

      startedstarted () () [signal]

      This signal is emitted after QMovie::start() has been called, and QMovie has entered QMovie::Running state.

      Look up this member in the source code.

      Toggle details void QMovie

      stateChangedstateChanged ( QMovie::MovieState state ) ( QMovie::MovieState state ) [signal]

      This signal is emitted every time the state of the movie changes. The new state is specified by state.

      See also QMovie::state().

      Look up this member in the source code.

      Toggle details void QMovie

      updatedupdated ( const QRect &rect ) ( const QRect &rect ) [signal]

      This signal is emitted when the rect rect in the current frame has been updated. You can call currentImage() or currentPixmap() to get a copy of the updated frame.

      Look up this member in the source code.

      Public Slots

      Toggle details bool QMovie

      jumpToNextFramejumpToNextFrame () () [slot]

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

      Look up this member in the source code.

      Toggle details void QMovie

      setPausedsetPaused ( bool paused ) ( bool paused ) [slot]

      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 paused() and state().

      Look up this member in the source code.

      Toggle details void QMovie

      startstart () () [slot]

      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() and setPaused().

      Look up this member in the source code.

      Toggle details void QMovie

      stopstop () () [slot]

      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() and setPaused().

      Look up this member in the source code.

      Notes provided by the Qt Community

      No notes