Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-61814

SVG not supported on deployed application after defining static const QList<QImage>

    XMLWordPrintable

Details

    • Bug
    • Resolution: Invalid
    • Not Evaluated
    • None
    • 5.6.1, 5.6.2
    • Core: Other
    • None
    • Windows 10 Home, 64-bit, Intel i5 CPU, integrated graphics HD 4000

      Qt 5.6.1 MinGW 4.9.2 32-bit

      Qt 5.6.1 MSVC2013 64-bit

      Qt 5.6.2 MSVC2015 64-bit

    Description

      I attached a project.

      If I create a class with a QList<QImage> property and feed it with QImage objects in its definition then the application has a problem with decoding SVG images in QML, but only after deploy. It works well in Qt Creator. Of course it seems that I am missing some libraries but this does not seem to be a case here. I have experience with Windows deploys and I am positive it was done correctly. Beside that copying every possible plugin/dll to the deploy directory does not change anything

      Removing definition, or just simplifying it to QList<QImage>() fixes the problem.

       

      The error message I receive is:

      qrc:///main.qml:13:5: QML Image: B??d dekodowania: qrc:/img2.svg: Nieobs?ugiwany format obrazu
      qrc:///main.qml:10:5: QML Image: B??d dekodowania: qrc:/img1.svg: Nieobs?ugiwany format obrazu
      // which translates to
      qrc:///main.qml:13:5: QML Image: error decoding: qrc:/img2.svg: unsupported image format
      qrc:///main.qml:10:5: QML Image: error decoding: qrc:/img1.svg: unsupported image format
      

       

      Steps I made to deploy application:

      1. run qmake, rebuild application
      2. run wideployqt, using following command: "C:\Qt\5.6\msvc2013_64\bin\windeployqt" --qmldir "C:/QtProjekty/testSvgNotSupported" "TestSvgNotSupported.exe" -qml -quick
      3. copy msvc redist dlls

       

      Code that does break SVG loading in QML:

      // testclass.h
      #ifndef TESTCLASS_H
      #define TESTCLASS_H
      
      #include <QList>
      #include <QImage>
      
      class TestClass
      {
      public:
          static const QList<QImage> images;
      };
      #endif // TESTCLASS_H
      
      
      // testclass.cpp
      #include "testclass.h"
      
      const QList<QImage> TestClass::images = QList<QImage>()
              << QImage(":/img1.png")
              << QImage(":/img2.png");
      // const QList<QImage> TestClass::images = QList<QImage>(); // works well
      

       

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            thiago Thiago Macieira
            fhazubski Filip Hazubski
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes