QMovie Class
QMovieクラスは、QImageReader でムービーを再生するための便利なクラスです。さらに...
ヘッダー | #include <QMovie> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
継承: | 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::CacheNone | 0 | フレームはキャッシュされません (デフォルト)。 |
QMovie::CacheAll | 1 | 全てのフレームがキャッシュされます。 |
enum QMovie::MovieState
この列挙型は、QMovie のさまざまな状態を記述する。
プロパティ・ドキュメント
[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)
QMovie オブジェクトを構築します。parent オブジェクトをQObject のコンストラクタに渡します。
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
ムービーが終了するまでにループする回数を返します。ムービーが1回しか再生されない(ループしない)場合、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()
フレームの拡大縮小サイズを返します。
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の場合、QMovie はPaused の状態になり、stateChanged (Paused)を発する。そうでない場合は、Running の状態になり、stateChanged (Running)を発する。
state()も参照のこと 。
void QMovie::setScaledSize(const QSize &size)
スケーリングされたフレームサイズをsize に設定する。
scaledSize() およびQImageReader::setScaledSize()も参照 。
[slot]
void QMovie::start()
ムービーを開始する。QMovie はRunning の状態になり、ムービーが進むにつれてupdated() とresized() を発するようになる。
QMovie がPaused 状態の場合、この関数はsetPaused(false) を呼び出すのと同じである。QMovie がすでにRunning の状態にある場合、この関数は何もしない。
[signal]
void QMovie::started()
このシグナルは、QMovie::start ()が呼び出され、QMovie がQMovie::Running の状態になった後に発せられる。
QMovie::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 の状態にある場合、この関数は何もしない。
[static]
QList<QByteArray> QMovie::supportedFormats()
QMovie がサポートしている画像フォーマットの一覧を返す。
QImageReader::supportedImageFormats()も参照 。
[signal]
void QMovie::updated(const QRect &rect)
このシグナルは、現在のフレームの rectrect が更新されたときに発せられます。更新されたフレームのコピーを取得するには、currentImage() またはcurrentPixmap() を呼び出します。
© 2025 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.