본문 바로가기
놀기/Qt

[Qt] QMovie로 gif 재생이 안 될 때 .....

by Hi~ 2023. 8. 7.

아래와 같이 QMovie를 사용하여 gif 재생을 시켜보자.

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QMovie>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QMovie* gifPlay = new QMovie(":images/images/loading.gif");
    ui->label->setMovie(gifPlay);
    gifPlay->start();
}

MainWindow::~MainWindow()
{
    delete ui;
}

 

3줄로 간단하게 gif 재생을 할 수 있다.

그런데.... 재생이 안된다...

 

이럴 때 확인해 봐야 하는 것이 지원되는 포맷 확인이다. 흠... gif 지원이 안된다.

 

qDebug() << QMovie::supportedFormats();

("webp")

 

안 되는 이유는 gif 라이브러리를 제외시켰기 때문이다. 일반적으로 윈도즈에서 이럴일은 없겠지만, 상황극을 해봤다.

 

 

파일명을 원상 복구한뒤 확인해 보면 지원되는 포맷에 gif가 추가되어 있다.

("gif", "webp")

 

그리고, 재생하면 아래와 같이 잘된다.

 

 

이런 쓸모없는 짓은 한 이유는 임베디드에서 하다 보면 gif 재생이 안될 때가 있다.

분명 간단한 몇 줄인데 재생이 안되면 난감하고 많은 시간을 소비하게 된다.

굳이 gif 재생이 아니더라도 뭔가가 안되면 plugin 디렉터리에 해당 plugin이 있는지 확인해 보자.

 

$ cat /etc/profile 
# .......
export QT_PLUGIN_PATH=/usr/lib/qt_plugins
# .......

root@mymy /usr/lib$ ls -alp qt_plugins/*
total 36
drwxrwxr-x    2 root     root          4096 Aug  7 08:56 ./
drwxrwxr-x    3 root     root          4096 Aug  7 08:56 ../
-rwxrwxr-x    1 root     root         24928 Aug  7 08:56 libqgif.so

 

댓글