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::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)
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 を返します。
画像データがシーケンシャルデバイス(ソケットなど)から送られてくる場合、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 は、ムービーの実行中に、このデバイスから画像データを読み込みます。
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() を呼び出します。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。