Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Проблема с QMovie и gif


Автор: RomanCh 2.10.2009, 10:41
Всем доброго времени.
Нужно крутить анимированный gif в программе под Windows. В дефолтной бинарной сборке Qt  4.5.0 всё работает замечательно.  Статическую собираю с:
-release -no-exceptions -openssl -no-webkit -no-phonon -static -no-opengl -no-qt3support -qt-gif -platform win32-g++
В результате QMovie::supportedFormats() возвращает пустой список и соответственно gif не показывается. В чём может быть проблема?

Автор: ecspertiza 2.10.2009, 11:53
А ты в main.cpp прописал?

Код

QT_BEGIN_NAMESPACE
Q_IMPORT_PLUGIN(qgif)
QT_END_NAMESPACE


и в pro файл
Код

LIBS = -lqgif \
 -lqgifd
QTPLUGIN =  qgif 



P.S. Статическая сборка зло(ИМХО).

Автор: RomanCh 2.10.2009, 11:57
Проблема решена. Для того что бы всё работало в статической сборке на других компьютерах без дополнительных файлов (кроме exe) нужно сделать следующее:

В файл проекта:

Код

QTPLUGIN += qgif

В исходники:

Код

#include <QtPlugin>
Q_IMPORT_PLUGIN(qgif);


По материалам: http://doc.trolltech.com/4.5/plugins-howto.html#static-plugins

UPD: ecspertiza спасибо за ответ, правда я на тот момент уже решил задачу smile И - в LIBS что-либо из указанного тобой добавлять не обязательно. Да и потом, если бы проблема была в этом - была бы ошибка линковки, а у меня её нет.
По поводу статической сборки - в некоторых случаях она оправдана, потому что раскидывать небольшую по функционалу софтинку с вагоном Qt-библиотек всем кому это нужно - в данном случае будет ещё худшим решением. Тут необходима минимальная простота: скачал один файл, запустил - работает. Ни каких инсталляторов и дополнительных DLL.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)