[QT] Animowany GIF i problem z animacją

0

Hej! Mam problem z odtworzeniem animowanego gifa w QT. W QT Creator jest wszystko ok, pokazuje się obrazek (ale bez animacji), jak uruchomię program to nic nie widać.
Próbowałem, też ręcznie... tj. :

 QLabel label;
 QMovie *movie = new QMovie("animations/fire.gif");

 label.setMovie(movie);
 movie->start();

Ale też nie działa:(
Dodam, że QT jest skonfigurowane i skompilowane statycznie z opcją -qt-gif a system operacyjny to Windows Vista :)
Z góry dziękuje za pomoc :)

0

twój kod jest identyczny z tym w dokumentacji więc powinno działać.
Może plik animacji nie został odnaleziony? Sprawdź jaką wartość zwraca movie->isValid() jeśli false to znaczy, że plik nie został znaleziony lub format tego pliku nie jest obsługiwany.
Sprawdź też logi jakie wypluwa, gdy uruchamiasz program z IDE.

0
MarekR22 napisał(a)

twój kod jest identyczny z tym w dokumentacji więc powinno działać.
Może plik animacji nie został odnaleziony? Sprawdź jaką wartość zwraca movie->isValid() jeśli false to znaczy, że plik nie został znaleziony lub format tego pliku nie jest obsługiwany.
Sprawdź też logi jakie wypluwa, gdy uruchamiasz program z IDE.

No niestety isValid() wychodz false :/
:(

0

Sprawdź co widać w logach, gdy uruchamiasz program z IDE (zakładam, że piszesz pod Windows).
Pod Linux uruchomienie z konsoli powinno ujawnić co jest problemem.

0
MarekR22 napisał(a)

Sprawdź co widać w logach, gdy uruchamiasz program z IDE (zakładam, że piszesz pod Windows).
Pod Linux uruchomienie z konsoli powinno ujawnić co jest problemem.

A jak to sprawdzić pod Windows???
Może głupie pytania ale jeśli chodzi o QT Creator to jestem początkujący....

Ok... dodałem w pliku projektu plugin do GIFa
QTPLUGIN += qgif \

a w pliku main.cpp

#include <QtPlugin>
Q_IMPORT_PLUGIN(qgif)

Wyswietla Gify ale statyczne... animowanych nadal nie pokazuje :(
A może użyć alternatywnego formatu MNG ? Pochodna od PNG ?

0

Witam

Po label.setMovie(movie); nalezy wstawic label.show() no i oczywiscie nalezy pamietac aby ten gif czy jakikolwiek inny plik byl wstawiony to pliku zasobów qrc.

0

No tak, wywołuje metode show. Cos sie pojawia na chwile i znika, jak by przez moment byla animacja.
Natomiast jak wizualnie ustawie plik GIF czy MNG na przycisku to jest tylko statyczny obrazek :(

0

Bardzo dziwne, że ci to nie działa.
Stworzyłem standardowy projekt. Wyklikałem QLabel do głównego okna i powiększyłem ten label.
W kodzie zrobiłem:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QMovie *movie = new QMovie(ui->label);
    movie->setFileName("flipable.gif");
    ui->label->setMovie(movie);
    movie->start();
}

I to działa bez problemów (Linux).

0
MarekR22 napisał(a)

Bardzo dziwne, że ci to nie działa.
Stworzyłem standardowy projekt. Wyklikałem QLabel do głównego okna i powiększyłem ten label.
W kodzie zrobiłem:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QMovie *movie = new QMovie(ui->label);
    movie->setFileName("flipable.gif");
    ui->label->setMovie(movie);
    movie->start();
}

I to działa bez problemów (Linux).

O dzięki!!! Działa :-) :)
To jednak w konstruktorze QMovie podaje sie jako parametr - etykietkę Label,a na nazwę pliku stawia przez metode setFileName klasy QMovie.
Ja wcześnie w konstruktorze QMovie podawałem nazwę pliku, a film (QMovie) do labela przypisywałem tylko przez metode setMovie i dlatego chyba nie działało....

Jeszcze raz dzięki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1