Spec-Zone.ru › Qt 5.11

Класс QMovie

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

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

Типы публичного интерфейса

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

Свойства

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

Публичные функции

QMovie(QObject *parent = nullptr)
QMovie(QIODevice *device, const QByteArray &format = QByteArray(), QObject *parent = nullptr)
QMovie(const QString &fileName, const QByteArray &format = QByteArray(), QObject *parent = nullptr)
virtual ~QMovie()
QColor backgroundColor() const
QMovie::CacheMode cacheMode() const
int текущийНомерКадра() const
QImage текущееИзображение() const
QPixmap текущийПиксель() const
QIODevice * устройство() const
QString имяФайла() const
QByteArray формат() const
int количествоКадров() const
QRect прямоугольникКадра() const
bool действителен() const
bool перейтиККадру(int frameNumber)
QImageReader::ImageReaderError последняяОшибка() const
QString последняяОшибкаСтрока() const
int количествоЦиклов() const
int задержкаСледующегоКадра() const
QSize масштабированныйРазмер()
void установитьЦветФона(const QColor &color)
void установитьРежимКэша(QMovie::CacheMode mode)
void установитьУстройство(QIODevice *device)
void установитьИмяФайла(const QString &fileName)
void установитьФормат(const QByteArray &format)
void установитьМасштабированныйРазмер(const QSize &size)
int скорость() const
QMovie::MovieState состояние() const
  • 34 публичных функции унаследованы от QObject

Публичные слоты

bool перейтиКСледующемуКадру()
void приостановить(bool paused)
void установитьСкорость(int percentSpeed)
void запустить()
void остановить()
  • 1 публичный слот унаследован от QObject
END_OF_DOCUMENT_MARKER

Сигналы

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()
  • 10 статических публичных членов унаследованы от QObject

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

  • 1 публичная переменная унаследована от QObject
  • 9 защищенных функций унаследованы от QObject
  • 2 защищенных переменных унаследованы от QObject

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

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

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

Сначала создайте объект QMovie, передав имя файла или указатель на QIODevice с анимированным изображением в конструктор QMovie. Вы можете вызвать isValid(), чтобы проверить, является ли изображение допустимым, прежде чем запускать воспроизведение. Чтобы запустить воспроизведение, вызовите start(). QMovie перейдет в состояние Running и вызовет сигналы 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.

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

QMovie::CacheMode cacheMode() const
void setCacheMode(QMovie::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 = nullptr)

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

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

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

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

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

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

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

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

[virtual] 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.

См. также lastError() и lastErrorString().

QString QMovie::fileName() const

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

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

END_OF_DOCUMENT_MARKER

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

Для получения информации о том, почему анимированное изображение не валидно, см. lastError().

bool QMovie::jumpToFrame(int frameNumber)

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

[slot] bool QMovie::jumpToNextFrame()

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

QImageReader::ImageReaderError QMovie::lastError() const

Возвращает последнюю ошибку, произошедшую при попытке чтения данных изображения.

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

QString QMovie::lastErrorString() const

Возвращает удобочитаемое представление последней ошибки, произошедшей при попытке чтения данных изображения.

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

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 перейдёт в состояние Пауза и выпустит stateChanged(Пауза); в противном случае перейдёт в состояние Запуск и выпустит stateChanged(Запуск).

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

void QMovie::setScaledSize(const QSize &size)

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

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

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

[slot] void QMovie::start()

Запускает воспроизведение анимированного изображения. QMovie перейдёт в состояние Запуск и начнёт испускать updated() и resized() по мере воспроизведения.

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

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

[signal] void QMovie::started()

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

QMovie::MovieState QMovie::state() const

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

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

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

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

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

[slot] void QMovie::stop()

Останавливает воспроизведение анимированного изображения. QMovie переходит в состояние НеЗапуск и прекращает испускание сигналов updated() и resized(). Если start() вызывается снова, анимированное изображение начнётся с начала.

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

См. также 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.11/qmovie.html

Spec-Zone.ru

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