QMovie Class

QMovieクラスは、QImageReader でムービーを再生するための便利なクラスです。詳細...

Header: #include <QMovie>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Inherits: QObject

パブリックな型

enum CacheMode { CacheNone, CacheAll }
enum MovieState { NotRunning, Paused, Running }

プロパティ

パブリック関数

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
QBindable<QMovie::CacheMode> bindableCacheMode()
QBindable<int> bindableSpeed()
QMovie::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)
QImageReader::ImageReaderError lastError() const
QString lastErrorString() const
int loopCount() const
int nextFrameDelay() const
QSize scaledSize()
void setBackgroundColor(const QColor &color)
void setCacheMode(QMovie::CacheMode mode)
void setDevice(QIODevice *device)
void setFileName(const QString &fileName)
void setFormat(const QByteArray &format)
void setScaledSize(const QSize &size)
int speed() const
QMovie::MovieState state() const

パブリックスロット

bool jumpToNextFrame()
void setPaused(bool paused)
void setSpeed(int percentSpeed)
void start()
void stop()

シグナル

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)

静的パブリックメンバ

QList<QByteArray> supportedFormats()

詳しい説明

このクラスは、音なしのシンプルなアニメーションを表示するために使用します。

まず、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 はPaused の状態になり、stateChanged() を呼び出します。setPaused(false)を呼び出すと、QMovieはRunning の状態に戻り、再びムービーを開始します。ムービーを停止するには、stop() を呼び出します。

一部のアニメーション形式では、背景色を設定することができます。色を設定するにはsetBackgroundColor() を、現在の背景色を取得するにはbackgroundColor() を呼び出します。

currentFrameNumber() は、現在のフレームのシーケンス番号を返します。アニメーションの最初のフレームはシーケンス番号 0 です。frameCount() は、画像フォーマットがサポートしていれば、アニメーションの総フレーム数を返します。loopCount() を呼び出すと、ムービーが終了するまでのループ回数を取得できます。nextFrameDelay() は、現在のフレームを表示するミリ秒数を返します。

QMovie は、setCacheMode() を呼び出すことで、アニメーションのフレームをキャッシュするように指示できます。

QMovie がサポートしているフォーマットのリストについては、supportedFormats() を呼び出してください。

QLabel およびQImageReaderも参照してください

メンバ型の説明

enum QMovie::CacheMode

この列挙型は、QMovie のさまざまなキャッシュモードについて説明します。

定数説明
QMovie::CacheNone0フレームはキャッシュされません (デフォルト)。
QMovie::CacheAll1すべてのフレームがキャッシュされる。

enum QMovie::MovieState

この列挙型は、QMovie の異なる状態を記述します。

定数説明
QMovie::NotRunning0ムービーは実行されていません。これはQMovie の初期状態であり、stop() が呼び出されるか、ムービーが終了した後の状態である。
QMovie::Paused1ムービーは一時停止され、QMovie は、updated() またはresized() の出力を停止する。この状態は、pause()またはsetPaused(true)を呼び出した後に入る。現在のフレーム番号は保持され、unpause() またはsetPaused(false)が呼ばれると、ムービーは次のフレームに進みます。
QMovie::Running2ムービーは実行中です。

プロパティの説明

[bindable] cacheMode : CacheMode

注意: このプロパティは、QProperty バインディングをサポートしています。

このプロパティは、ムービーのキャッシュモードを保持します。

アニメーションデータをデコードするためにQMovie が依存する、基礎となるアニメーションフォーマットハンドラが、アニメーション内の特定のフレームへのジャンプや、アニメーションを(ループのために)最初に「巻き戻す」ことをサポートしていない場合、フレームのキャッシュは便利です。さらに、画像データがシーケンシャルデバイスから来たものである場合、基礎となるアニメーションハンドラが、すでにデータが読み込まれたフレームにシークバックすることは不可能です(ループ再生は完全に不可能です)。

このような状況を支援するために、QMovie オブジェクトにフレームをキャッシュするように指示することができます。この場合、オブジェクトの寿命の間、フレームをメモリに保持するメモリコストが追加されます。

デフォルトでは、このプロパティはCacheNone に設定されています。

QMovie::CacheModeも参照してください

[bindable] speed : int

注意: このプロパティは、QProperty バインディングをサポートしています。

このプロパティは、ムービーの速度を保持します。

スピードは、オリジナルムービーのスピードに対するパーセンテージで測定されます。デフォルトの速度は100%です。例

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

メンバ関数ドキュメント

[explicit] QMovie::QMovie(QObject *parent = nullptr)

QObject のコンストラクタにparent オブジェクトを渡して、QMovie オブジェクトを構築します。

setFileName()、setDevice()、setFormat()も参照

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

QMovie オブジェクトを構築します。QMovie はdevice から画像データを読み込みます。format が空でない場合、QMovie は画像データのデコードに画像フォーマットformat を使用します。そうでない場合、QMovie はフォーマットの推測を試みます。

parent オブジェクトはQObject のコンストラクタに渡されます。

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

QMovieオブジェクトを構築します。QMovie はfileName から読み込んだ画像データを使用します。format が空でない場合、QMovie は画像データのデコードに画像フォーマットformat を使用します。そうでない場合、QMovieはフォーマットの推測を試みます。

parent オブジェクトはQObject のコンストラクタに渡されます。

[virtual noexcept] 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 画像データを読み込むデバイスを返します。デバイスが割り当てられていない場合は、nullptr が返されます。

setDevice() およびfileName() も参照

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

このシグナルは、再生中にエラーerror が発生したときにQMovie から発せられる。QMovie はムービーを停止し、QMovie::NotRunning の状態になる。

lastError() およびlastErrorString()も参照

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() を呼び出すと、フレームのコピーを取得できます。

int QMovie::frameCount() const

ムービーのフレーム数を返します。

この機能をサポートしていないアニメーションフォーマットもあり、その場合は 0 が返されます。

QRect QMovie::frameRect() const

最後のフレームの rect を返します。フレームがまだ更新されていない場合は、無効な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 を返します。

画像データがシーケンシャルデバイス(ソケットなど)から送られてくる場合、QMoviecacheModeQMovie::CacheAll に設定されている場合のみ、ムービーをループさせることができることに注意してください。

int QMovie::nextFrameDelay() const

QMovie がアニメーションの次のフレームを更新するまでに待つミリ秒数を返します。

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

このシグナルは、現在のフレームがsize にリサイズされたときに発せられます。 この効果は、アニメーションの中で、フレームを置き換える代わりに使われることがあります。更新されたフレームのコピーを取得するには、currentImage() またはcurrentPixmap() を呼び出します。

QSize QMovie::scaledSize()

フレームのスケーリングされたサイズを返します。

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 が画像データの形式を推測します。

QMovie がサポートするフォーマットの全リストについては、supportedFormats() を呼び出すことができる。

format() およびQImageReader::supportedImageFormats()も参照

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

paused がtrueの場合、QMoviePaused の状態になり、stateChanged (Paused)を発する。そうでない場合、Running の状態になり、stateChanged (Running)を発する。

state()も参照

void QMovie::setScaledSize(const QSize &size)

スケーリングされたフレームサイズをsize に設定する。

scaledSize() およびQImageReader::setScaledSize() も参照

[slot] void QMovie::start()

ムービーを開始します。QMovieRunning の状態になり、ムービーが進むにつれてupdated() とresized() を放出し始めます。

QMoviePaused の状態にある場合、この関数はsetPaused(false) を呼び出すのと同じである。QMovie がすでにRunning の状態にある場合、この関数は何もしない。

stop() およびsetPaused()も参照

[signal] void QMovie::started()

このシグナルは、QMovie::start ()が呼び出され、QMovieQMovie::Running 状態になった後に発せられる。

QMovie::MovieState QMovie::state() const

QMovie の現在の状態を返す。

MovieState およびstateChanged()も参照

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

このシグナルは、ムービーの状態が変化するたびに発せられる。新しい状態はstate で指定される。

QMovie::state()も参照

[slot] void QMovie::stop()

QMovieNotRunning の状態になり、updated() とresized() の発信を停止する。start() が再び呼ばれると、ムービーは最初から再開される。

QMovie がすでにNotRunning の状態にある場合、この関数は何もしない。

start() およびsetPaused()も参照

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

QMovie がサポートしている画像フォーマットの一覧を返す。

QImageReader::supportedImageFormats()も参照

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

このシグナルは、現在のフレームの rectrect が更新されたときに発せられます。更新されたフレームのコピーを取得するには、currentImage() またはcurrentPixmap() を呼び出します。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。