QMovie, gif and QRC



  • Hello
    I'm trying to deploy application for Windows. I am using a QMovie widget with gif loaded to play. The problem is, movie.isValid() says that it is not.
    I can see, that my gif is listed in the qrc file, and all files listed are converted to qrc_ProgramName.cpp (with gif).
    All pictures are included (and visible in program), so I think, that all files are attached to exe.

    The problem is that QMovie doesn't play gif animation.
    I've found, that it is neccesary to deploy application with qgif.dll file, but it still doesn't work...
    Please, help me!

    I am using 2 toolchains:
    Qt 5.3.1 with mingw 4.82 x32
    Qt 5.4.1 with mingw 4.91 x32


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    How did you deploy your application ? Did you put everything in the correct location ?



  • Hello,
    Maybe your missing ":/" or "qrc:/" in path to Your gif (or path to the gif inside resource is wrong)?



  • Thank you for reply.

    My full qrc file (spaces are removed...):

    <RCC>
    <qresource prefix="/">
    <file>langs/pl.qm</file>
    <file>langs/hu.qm</file>
    <file>icons/wait_animation.gif</file>
    <file>langs/pl.ts</file>
    <file>langs/hu.ts</file>
    <file>icons/wait_animation_trans.gif</file>
    <file>icons/Previous-icon.png</file>
    <file>icons/Next-icon.png</file>
    <file>icons/Symbols-Delete-icon.png</file>
    </qresource>
    </RCC>

    All files are in folders as listed (in project). In deployed program those files do not need to be found in program folder.

    Code fragment:

    QMovie *movie = new QMovie(this);
    movie->setFileName(":/icons/wait_animation_trans.gif");

    How did I deploy? Simply built application in release, and copied it into separate folder with dll's:
    icudt52.dll
    icuin52.dll
    icuuc52.dll
    libgcc_s_dw2-1.dll
    libstdc++-6.dll
    libwinpthread-1.dll
    qgif.dll
    Qt5Core.dll
    Qt5Gui.dll
    Qt5Multimedia.dll
    Qt5SerialPort.dll
    Qt5Widgets.dll

    Fragments of my *.pro file:

    RESOURCES += ResidentsList.qrc
    RC_FILE = ResidentsList.rc
    TRANSLATIONS += langs/pl.ts
    TRANSLATIONS += langs/hu.ts
    QTPLUGIN += qgif

    I don't have any more ideas...


  • Moderators

    Hi,

    @quniq said:

    How did I deploy? Simply built application in release, and copied it into separate folder with dll's:
    icudt52.dll
    icuin52.dll
    icuuc52.dll
    libgcc_s_dw2-1.dll
    libstdc++-6.dll
    libwinpthread-1.dll
    qgif.dll
    Qt5Core.dll
    Qt5Gui.dll
    Qt5Multimedia.dll
    Qt5SerialPort.dll
    Qt5Widgets.dll

    qgif.dll needs to be in a subfolder. See http://wiki.qt.io/Deploy_an_Application_on_Windows



  • And that's the information I missed. I found that qgif should be in 'plugins' folder, but it seems to work in qt4 only. qfgif.dll has to be stored in 'imageformats' subfolder.
    Thanks a lot!


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.