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() |
상세 설명
이 클래스는 소리 없이 간단한 애니메이션을 표시하는 데 사용됩니다.
먼저 파일 이름 또는 애니메이션 이미지 형식이 포함된 QIODevice 에 대한 포인터를 QMovie의 생성자에 전달하여 QMovie 객체를 생성합니다. 동영상을 시작하기 전에 isValid()를 호출하여 이미지 데이터가 유효한지 확인할 수 있습니다. 동영상을 시작하려면 start()를 호출합니다. QMovie는 Running 상태로 들어가고 started() 및 stateChanged()를 내보냅니다. 동영상의 현재 상태를 가져오려면 state()를 호출합니다.
애플리케이션에 동영상을 표시하려면 QLabel::setMovie()에 QMovie 개체를 전달하면 됩니다. 예제:
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 (참)을 호출하여 동영상을 일시 중지합니다. 그러면 QMovie가 Paused 상태로 들어가 stateChanged()를 내보냅니다. setPaused (false)를 호출하면 QMovie가 Running 상태로 다시 들어가서 동영상을 다시 시작합니다. 동영상을 중지하려면 stop()를 호출합니다.
특정 애니메이션 형식에서는 배경색을 설정할 수 있습니다. setBackgroundColor ()를 호출하여 색상을 설정하거나 backgroundColor()를 호출하여 현재 배경색을 검색할 수 있습니다.
currentFrameNumber()는 현재 프레임의 시퀀스 번호를 반환합니다. 애니메이션의 첫 번째 프레임은 시퀀스 번호가 0입니다. frameCount()는 이미지 형식에서 지원하는 경우 애니메이션의 총 프레임 수를 반환합니다. loopCount ()를 호출하여 동영상이 끝나기 전에 반복해야 하는 횟수를 가져올 수 있습니다. nextFrameDelay()는 현재 프레임이 표시되어야 하는 밀리초 수를 반환합니다.
setCacheMode()를 호출하여 애니메이션의 프레임을 캐시하도록 QMovie에 지시할 수 있습니다.
QMovie가 지원하는 형식 목록을 보려면 supportedFormats()를 호출하십시오.
QLabel 및 QImageReader 을참조하십시오 .
멤버 유형 문서
enum QMovie::CacheMode
이 열거형은 QMovie 의 다양한 캐시 모드를 설명합니다.
Constant | 값 | 설명 |
---|---|---|
QMovie::CacheNone | 0 | 프레임이 캐시되지 않습니다(기본값). |
QMovie::CacheAll | 1 | 모든 프레임이 캐시됩니다. |
enum QMovie::MovieState
이 열거형은 QMovie 의 다양한 상태를 설명합니다.
Constant | 값 | 설명 |
---|---|---|
QMovie::NotRunning | 0 | 동영상이 실행 중이 아닙니다. QMovie 의 초기 상태이며 stop()가 호출되거나 동영상이 종료된 후 들어오는 상태입니다. |
QMovie::Paused | 1 | 동영상이 일시 중지되고 QMovie updated () 또는 resized() 전송을 중지합니다. 이 상태는 pause() 또는 setPaused(true)를 호출한 후에 입력됩니다. 현재 프레임 번호가 유지되며, 동영상은 일시정지() 또는 setPaused(false)가 호출되면 다음 프레임으로 계속됩니다. |
QMovie::Running | 2 | 동영상이 실행 중입니다. |
속성 문서
[bindable]
cacheMode : CacheMode
참고: 이 속성은 QProperty 바인딩을 지원합니다.
이 속성은 동영상의 캐시 모드를 보유합니다.
프레임 캐싱은 QMovie 이 애니메이션 데이터를 디코딩하기 위해 의존하는 기본 애니메이션 형식 처리기가 애니메이션의 특정 프레임으로 점프하거나 애니메이션을 처음으로 '되감기'(루핑용)를 지원하지 않는 경우에 유용할 수 있습니다. 또한 이미지 데이터가 순차적 장치에서 가져온 경우 기본 애니메이션 핸들러가 데이터를 이미 읽은 프레임으로 되돌아갈 수 없습니다(루핑이 아예 불가능해집니다).
이러한 상황을 지원하기 위해 QMovie 객체에 프레임을 캐시하도록 지시할 수 있으며, 객체의 수명 기간 동안 프레임을 메모리에 보관하는 메모리 비용이 추가됩니다.
기본적으로 이 속성은 CacheNone 로 설정되어 있습니다.
액세스 함수:
QMovie::CacheMode | cacheMode() const |
void | setCacheMode(QMovie::CacheMode mode) |
QMovie::CacheMode 를참조하세요 .
[bindable]
speed : int
참고: 이 속성은 QProperty 바인딩을 지원합니다.
이 속성은 동영상의 속도를 보유합니다.
속도는 원본 동영상 속도의 백분율로 측정됩니다. 기본 속도는 100%입니다. 예시:
QMovie movie("racecar.gif"); movie.setSpeed(200); // 2x speed
액세스 함수:
int | speed() const |
void | setSpeed(int percentSpeed) |
멤버 함수 문서
[explicit]
QMovie::QMovie(QObject *parent = nullptr)
parent 객체를 QObject 의 생성자에 전달하여 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
마지막 프레임의 렉트를 반환합니다. 아직 업데이트된 프레임이 없으면 유효하지 않은 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을 반환합니다.
이미지 데이터가 순차적 장치(예: 소켓)에서 오는 경우 cacheMode 이 QMovie::CacheAll 로 설정된 경우에만 QMovie 에서 동영상을 반복할 수 있습니다.
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 에서 이미지 데이터의 형식을 추측하려고 시도합니다.
supportedFormats()를 호출하여 QMovie 에서 지원하는 형식의 전체 목록을 확인할 수 있습니다.
format() 및 QImageReader::supportedImageFormats()도 참조하세요 .
[slot]
void QMovie::setPaused(bool paused)
paused 이 참이면 QMovie 은 Paused 상태로 들어가 stateChanged(일시 중지됨)을 출력하고, 그렇지 않으면 Running 상태로 들어가 stateChanged(실행 중)을 출력합니다.
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 상태인 경우 이 함수는 아무 작업도 수행하지 않습니다.
start() 및 setPaused()도 참조하세요 .
[static]
QList<QByteArray> QMovie::supportedFormats()
QMovie 에서 지원하는 이미지 형식 목록을 반환합니다.
QImageReader::supportedImageFormats()도 참조하세요 .
[signal]
void QMovie::updated(const QRect &rect)
이 신호는 현재 프레임의 렉 rect 이 업데이트되었을 때 발생합니다. 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.