Spec-Zone.ru › Qt 5.6

Класс QMovie

Класс QMovie — это вспомогательный класс для воспроизведения анимированных изображений с помощью QImageReader. Подробнее...

Заголовок: #include <QMovie>
qmake: QT += gui
Наследует: QObject
  • Список всех членов, включая унаследованные

Типы

Перечисление CacheMode { CacheNone, CacheAll }
Перечисление MovieState { НеЗапущен, Приостановлен, Запущен }

Свойства

  • cacheMode : CacheMode
  • speed : int
  • 1 свойство унаследовано от QObject

Открытые функции

QMovie(QObject *parent = Q_NULLPTR)
QMovie(QIODevice *device, const QByteArray &format = QByteArray(), QObject *parent = Q_NULLPTR)
QMovie(const QString &fileName, const QByteArray &format = QByteArray(), QObject *parent = Q_NULLPTR)
~QMovie()
QColor backgroundColor() const
CacheMode cacheMode() const
int currentFrameNumber() const
QImage currentImage() const
QPixmap currentPixmap() const
QIODevice * device() const
QString fileName() const
QByteArray format() const
int frameCount() const
QRect frameRect() const
bool isValid() const
bool jumpToFrame(int frameNumber)
int loopCount() const
int nextFrameDelay() const
QSize scaledSize()
void setBackgroundColor(const QColor &color)
void setCacheMode(CacheMode mode)
void setDevice(QIODevice *device)
void setFileName(const QString &fileName)
void setFormat(const QByteArray &format)
void setScaledSize(const QSize &size)
int speed() const
MovieState state() const
  • 31 открытая функция унаследована от QObject

Открытые слоты

bool jumpToNextFrame()
void setPaused(bool paused)
void setSpeed(int percentSpeed)
void start()
void stop()
  • 1 открытый слот унаследован от QObject

Сигналы

void error(QImageReader::ImageReaderError error)
void finished()
void frameChanged(int frameNumber)
void resized(const QSize &size)
void started()
void stateChanged(QMovie::MovieState state)
void updated(const QRect &rect)
  • 2 сигнала унаследованы от QObject

Статические открытые члены

QList<QByteArray> supportedFormats()
  • 11 статических открытых членов унаследованы от QObject

Дополнительные унаследованные члены

  • 9 защищенных функций унаследованы от QObject

Подробное описание

Класс QMovie — это вспомогательный класс для воспроизведения анимированных изображений с помощью QImageReader.

Этот класс используется для отображения простых анимаций без звука. Если вам нужно отображать видео и медиа-контент, используйте фреймворк мультимедиа Qt Multimedia.

Сначала создайте объект QMovie, передав имя файла или указатель на QIODevice, содержащий анимированный формат изображения, в конструктор QMovie. Вы можете вызвать isValid(), чтобы проверить, является ли данные изображения корректными, прежде чем запускать воспроизведение. Чтобы запустить воспроизведение, вызовите start(). QMovie перейдет в состояние Запущен, и вызовет started() и stateChanged(). Чтобы получить текущее состояние воспроизведения, вызовите state().

Чтобы отобразить анимированное изображение в приложении, вы можете передать объект QMovie методу QLabel::setMovie(). Пример:

QLabel label;
QMovie *movie = new QMovie("animations/fire.gif");

label.setMovie(movie);
movie->start();

Всякий раз, когда в анимированном изображении становится доступна новая рамка, QMovie вызовет updated(). Если изменяется размер кадра, будет вызван resized(). Вы можете вызвать currentImage() или currentPixmap(), чтобы получить копию текущей рамки. Когда воспроизведение анимации завершено, QMovie вызовет finished(). При возникновении ошибок во время воспроизведения (например, поврежденный файл изображения), QMovie вызовет error().

Вы можете управлять скоростью воспроизведения фильма, вызвав setSpeed(), который принимает процент от исходной скорости в качестве аргумента. Приостановить фильм можно, вызвав setPaused(true). QMovie затем перейдет в состояние Приостановлено и выпустит stateChanged(). Если вы вызовете setPaused(false), QMovie вернется в состояние Запущено и снова начнет воспроизведение. Чтобы остановить фильм, вызовите stop().

В некоторых форматах анимации можно задать цвет фона. Вы можете вызвать setBackgroundColor(), чтобы установить цвет, или backgroundColor(), чтобы получить текущий цвет фона.

currentFrameNumber() возвращает порядковый номер текущей кадра. Первая кадр в анимации имеет порядковый номер 0. frameCount() возвращает общее количество кадров в анимации, если формат изображения поддерживает эту информацию. Вы можете вызвать loopCount(), чтобы получить количество повторений цикла анимации перед завершением. nextFrameDelay() возвращает количество миллисекунд, в течение которого текущий кадр должен отображаться.

QMovie может быть запрограммирован на кеширование кадров анимации, вызвав setCacheMode().

Вызовите supportedFormats() для получения списка поддерживаемых форматов QMovie.

См. также QLabel, QImageReader и Пример фильма.

Документация типов членов

enum QMovie::CacheMode

Этот перечисление описывает различные режимы кеширования QMovie.

Константа Значение Описание
QMovie::CacheNone 0 Кадры не кешируются (по умолчанию).
QMovie::CacheAll 1 Все кадры кешируются.

enum QMovie::MovieState

Это перечисление описывает различные состояния QMovie.

Константа Значение Описание
QMovie::NotRunning 0 Фильм не воспроизводится. Это начальное состояние QMovie, и состояние, в которое он переходит после вызова stop() или завершения фильма.
QMovie::Paused 1 Фильм приостановлен, и QMovie прекращает испускать updated() или resized(). Это состояние достигается после вызова pause() или setPaused(true). Текущий номер кадра сохраняется, и фильм продолжится с последующим кадром при вызове unpause() или setPaused(false).
QMovie::Running 2 Фильм воспроизводится.

Документация свойств

cacheMode : CacheMode

Это свойство содержит режим кеширования фильма.

Кеширование кадров может быть полезно, когда обработчик формата анимации, на который полагается QMovie для декодирования данных анимации, не поддерживает переход к определенным кадрам анимации или даже «перемотку» анимации к началу (для циклов). Кроме того, если данные изображения поступают из последовательного устройства, обработчик анимации не может перейти к кадрам, данные которых уже были прочитаны (что делает циклы вообще невозможными).

Для таких ситуаций объект QMovie может быть запрограммирован на кеширование кадров с дополнительными затратами памяти на хранение кадров в памяти на протяжении всего жизненного цикла объекта.

По умолчанию это свойство установлено в CacheNone.

Функции доступа:

CacheMode cacheMode() const
void setCacheMode(CacheMode mode)

См. также QMovie::CacheMode.

speed : int

Это свойство содержит скорость фильма.

Скорость измеряется в процентах от исходной скорости фильма. Значение по умолчанию — 100%. Пример:

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

Функции доступа:

int speed() const
void setSpeed(int percentSpeed)

Документация функций-членов

QMovie::QMovie(QObject *parent = Q_NULLPTR)

Создаёт объект QMovie, передавая объект parent конструктору QObject.

См. также setFileName(), setDevice() и setFormat().

QMovie::QMovie(QIODevice *device, const QByteArray &format = QByteArray(), QObject *parent = Q_NULLPTR)

Создаёт объект QMovie. QMovie будет читать данные изображения из device, предполагая, что он открыт и доступен для чтения. Если format не пусто, QMovie будет использовать формат изображения format для декодирования данных изображения. В противном случае QMovie попытается определить формат.

Объект parent передаётся в конструктор QObject.

QMovie::QMovie(const QString &fileName, const QByteArray &format = QByteArray(), QObject *parent = Q_NULLPTR)

Создаёт объект QMovie. QMovie будет читать данные изображения из fileName. Если format не пусто, QMovie будет использовать формат изображения format для декодирования данных изображения. В противном случае QMovie попытается определить формат.

Объект parent передаётся в конструктор QObject.

QMovie::~QMovie()

Уничтожает объект QMovie.

QColor QMovie::backgroundColor() const

Возвращает цвет фона фильма. Если цвет фона не назначен, возвращается недопустимый цвет QColor.

См. также setBackgroundColor().

int QMovie::currentFrameNumber() const

Возвращает порядковый номер текущего кадра. Номер первого кадра в фильме — 0.

QImage QMovie::currentImage() const

Возвращает текущий кадр в виде QImage.

См. также currentPixmap() и updated().

QPixmap QMovie::currentPixmap() const

Возвращает текущий кадр в виде QPixmap.

См. также currentImage() и updated().

QIODevice *QMovie::device() const

Возвращает устройство, из которого QMovie считывает данные изображения. Если устройство не назначено, возвращается 0.

См. также setDevice() и fileName().

[signal] void QMovie::error(QImageReader::ImageReaderError error)

Этот сигнал испускается QMovie, когда во время воспроизведения произошла ошибка error. QMovie остановит фильм и перейдёт в состояние QMovie::NotRunning.

QString QMovie::fileName() const

Возвращает имя файла, из которого QMovie считывает данные изображения. Если имя файла не назначено или назначенное устройство не является файлом, возвращается пустая строка QString.

См. также setFileName() и device().

[signal] void QMovie::finished()

Этот сигнал испускается, когда фильм завершён.

См. также QMovie::stop().

QByteArray QMovie::format() const

Возвращает формат, используемый QMovie при декодировании данных изображения. Если формат не назначен, возвращается пустой QByteArray().

См. также setFormat().

[signal] void QMovie::frameChanged(int frameNumber)

Этот сигнал излучается, когда номер кадра изменился на frameNumber. Вы можете вызвать currentImage() или currentPixmap() для получения копии кадра.

Эта функция была добавлена в Qt 4.1.

int QMovie::frameCount() const

Возвращает количество кадров в фильме.

Некоторые форматы анимации не поддерживают эту функцию, в этом случае возвращается 0.

QRect QMovie::frameRect() const

Возвращает прямоугольник последнего кадра. Если ни один кадр еще не был обновлен, возвращается недействительный прямоугольник QRect.

См. также currentImage() и currentPixmap().

bool QMovie::isValid() const

Возвращает true, если фильм валиден (например, данные изображения читаемы, и формат изображения поддерживается); в противном случае возвращает false.

bool QMovie::jumpToFrame(int frameNumber)

Переходит к кадру с номером frameNumber. Возвращает true при успехе; в противном случае возвращает false.

[slot] bool QMovie::jumpToNextFrame()

Переходит к следующему кадру. Возвращает true при успехе; в противном случае возвращает false.

int QMovie::loopCount() const

Возвращает количество повторений фильма перед завершением. Если фильм воспроизводится только один раз (без повторения), loopCount возвращает 0. Если фильм повторяется бесконечно, loopCount возвращает -1.

Обратите внимание, что если данные изображения поступают из последовательного устройства (например, сокета), QMovie может повторить фильм только если свойство cacheMode установлено в QMovie::CacheAll.

int QMovie::nextFrameDelay() const

Возвращает количество миллисекунд, которое QMovie будет ждать перед обновлением следующего кадра в анимации.

[signal] void QMovie::resized(const QSize &size)

Этот сигнал излучается, когда текущий кадр был изменен на размер size. Этот эффект иногда используется в анимациях как альтернатива замене кадра. Вы можете вызвать currentImage() или currentPixmap() для получения копии обновленного кадра.

QSize QMovie::scaledSize()

Возвращает масштабированный размер кадров.

Эта функция была добавлена в Qt 4.1.

См. также setScaledSize() и QImageReader::scaledSize().

void QMovie::setBackgroundColor(const QColor &color)

Для форматов изображений, которые это поддерживают, эта функция устанавливает цвет фона на color.

См. также backgroundColor().

void QMovie::setDevice(QIODevice *device)

Устанавливает текущее устройство на device. QMovie будет читать данные изображения из этого устройства во время воспроизведения фильма.

См. также device() и setFormat().

void QMovie::setFileName(const QString &fileName)

Устанавливает имя файла, из которого QMovie читает данные изображения, на fileName.

См. также fileName(), setDevice() и setFormat().

void QMovie::setFormat(const QByteArray &format)

Устанавливает формат, который QMovie будет использовать при декодировании данных изображения, на format. По умолчанию QMovie попытается определить формат данных изображения.

Вы можете вызвать supportedFormats() для получения полного списка форматов, которые поддерживает QMovie.

См. также format() и QImageReader::supportedImageFormats().

[slot] void QMovie::setPaused(bool paused)

Если paused равно true, QMovie перейдет в состояние Paused и излучит stateChanged(Paused); в противном случае он перейдет в состояние Running и излучит stateChanged(Running).

См. также state().

void QMovie::setScaledSize(const QSize &size)

Устанавливает масштабированный размер кадра на size.

Эта функция была добавлена в Qt 4.1.

См. также scaledSize() и QImageReader::setScaledSize().

[slot] void QMovie::start()

Запускает фильм. QMovie перейдет в состояние Running и начнет излучать updated() и resized() по мере воспроизведения фильма.

Если QMovie находится в состоянии Paused, эта функция эквивалентна вызову setPaused(false). Если QMovie уже находится в состоянии Running, эта функция ничего не делает.

См. также stop() и setPaused().

[signal] void QMovie::started()

Этот сигнал излучается после вызова QMovie::start(), и QMovie перешел в состояние QMovie::Running.

MovieState QMovie::state() const

Возвращает текущее состояние QMovie.

См. также MovieState и stateChanged().

[signal] void QMovie::stateChanged(QMovie::MovieState state)

Этот сигнал излучается каждый раз, когда состояние фильма изменяется. Новое состояние указано в state.

См. также QMovie::state().

[slot] void QMovie::stop()

Останавливает фильм. QMovie переходит в состояние NotRunning и прекращает излучать updated() и resized(). Если снова вызвать start(), фильм начнет воспроизводиться с начала.

Если QMovie уже находится в состоянии NotRunning, эта функция ничего не делает.

См. также start() и setPaused().

[static] QList<QByteArray> QMovie::supportedFormats()

Возвращает список форматов изображений, поддерживаемых QMovie.

Эта функция была добавлена в Qt 4.1.

См. также QImageReader::supportedImageFormats().

[signal] void QMovie::updated(const QRect &rect)

Этот сигнал излучается, когда прямоугольник rect в текущем кадре был обновлен. Вы можете вызвать currentImage() или currentPixmap() для получения копии обновленного кадра.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qmovie.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API