Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. Adding SVG to resource with alias and referencing in QML
Forum Updated to NodeBB v4.3 + New Features

Adding SVG to resource with alias and referencing in QML

Scheduled Pinned Locked Moved Solved QML and Qt Quick
33 Posts 4 Posters 5.8k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • JoeCFDJ JoeCFD

    @SPlatten Yes. You can drop qrc: and alias + root / is good enough.

    SPlattenS Offline
    SPlattenS Offline
    SPlatten
    wrote on last edited by
    #24
    This post is deleted!
    JoeCFDJ 1 Reply Last reply
    0
    • SPlattenS SPlatten

      This post is deleted!

      JoeCFDJ Offline
      JoeCFDJ Offline
      JoeCFD
      wrote on last edited by
      #25

      @SPlatten without alias you need it.

      SPlattenS 1 Reply Last reply
      0
      • JoeCFDJ JoeCFD

        @SPlatten without alias you need it.

        SPlattenS Offline
        SPlattenS Offline
        SPlatten
        wrote on last edited by SPlatten
        #26
        This post is deleted!
        JoeCFDJ 1 Reply Last reply
        0
        • SPlattenS SPlatten

          This post is deleted!

          JoeCFDJ Offline
          JoeCFDJ Offline
          JoeCFD
          wrote on last edited by JoeCFD
          #27

          @SPlatten I see. All of my images have alias. Therefore, no qrc: is needed anywhere. It is good you drop it as well without alias.
          I still use qrc for qml files since they do not have alias
          resources/qml/main.qml: source: "qrc:/qml/MainScreen.qml"
          resources/qml/main.qml: source: "qrc:/qml/SplashScreen.qml"
          I will try to remove it and let you know.

          Confirmed: qrc is not needed even when resource files do not have alias. qrc: can be dropped completely.
          But not sure why Qt did this. The code with or without qrc: should compile
          In Qt6 qml module version numbers are dropped. I am using Qt 5.15.2.

          SPlattenS 1 Reply Last reply
          0
          • JoeCFDJ JoeCFD

            @SPlatten I see. All of my images have alias. Therefore, no qrc: is needed anywhere. It is good you drop it as well without alias.
            I still use qrc for qml files since they do not have alias
            resources/qml/main.qml: source: "qrc:/qml/MainScreen.qml"
            resources/qml/main.qml: source: "qrc:/qml/SplashScreen.qml"
            I will try to remove it and let you know.

            Confirmed: qrc is not needed even when resource files do not have alias. qrc: can be dropped completely.
            But not sure why Qt did this. The code with or without qrc: should compile
            In Qt6 qml module version numbers are dropped. I am using Qt 5.15.2.

            SPlattenS Offline
            SPlattenS Offline
            SPlatten
            wrote on last edited by SPlatten
            #28
            This post is deleted!
            JoeCFDJ 1 Reply Last reply
            0
            • SPlattenS SPlatten

              This post is deleted!

              JoeCFDJ Offline
              JoeCFDJ Offline
              JoeCFD
              wrote on last edited by JoeCFD
              #29

              @SPlatten what is your Qt version? Is this on Linux?
              check the file path in your compiled qrc_images.cpp. All your images are compiled into this file. This is my setting.

              <RCC>
                  <qresource prefix="/res">
                      <file alias="background">images/SplashBackground.png</file>
                  </qresource>
              </RCC>
              
                  Image { /* background image works */
                      anchors.centerIn: parent
                      source: "/res/background"
                      width: parent.width
                      height: parent.height
                  }
              
              SPlattenS 1 Reply Last reply
              0
              • JoeCFDJ JoeCFD

                @SPlatten what is your Qt version? Is this on Linux?
                check the file path in your compiled qrc_images.cpp. All your images are compiled into this file. This is my setting.

                <RCC>
                    <qresource prefix="/res">
                        <file alias="background">images/SplashBackground.png</file>
                    </qresource>
                </RCC>
                
                    Image { /* background image works */
                        anchors.centerIn: parent
                        source: "/res/background"
                        width: parent.width
                        height: parent.height
                    }
                
                SPlattenS Offline
                SPlattenS Offline
                SPlatten
                wrote on last edited by
                #30
                This post is deleted!
                SPlattenS 1 Reply Last reply
                0
                • SPlattenS SPlatten

                  This post is deleted!

                  SPlattenS Offline
                  SPlattenS Offline
                  SPlatten
                  wrote on last edited by SPlatten
                  #31

                  @JoeCFD , I decided to create a simple application to experiment with the resources. I used the same SVG file. The resource file:

                  <RCC>
                      <qresource prefix="/">
                          <file alias="stale.svg">stale.svg</file>
                          <file>mainWindow.qml</file>
                      </qresource>
                  </RCC>
                  

                  In the mainwindow:

                  void MainWindow::paintEvent(QPaintEvent *pobjEvt) {
                      Q_UNUSED(pobjEvt);
                  
                      QPainter objPainter(this);
                      QImage* pobjImage(new QImage(":/stale.svg"));
                  
                      bool blnIsNull(pobjImage->isNull());
                      qDebug() << QString("Image isNull: %1").arg(((blnIsNull == true) ? "Yes" : "No"));
                  
                      objPainter.drawImage(10, 10, *pobjImage);
                  }
                  

                  This works absolutely fine and the iamge is displayed correctly. I will not try to use this to figure out why the original isn't working.

                  SPlattenS JoeCFDJ 2 Replies Last reply
                  0
                  • SPlattenS SPlatten

                    @JoeCFD , I decided to create a simple application to experiment with the resources. I used the same SVG file. The resource file:

                    <RCC>
                        <qresource prefix="/">
                            <file alias="stale.svg">stale.svg</file>
                            <file>mainWindow.qml</file>
                        </qresource>
                    </RCC>
                    

                    In the mainwindow:

                    void MainWindow::paintEvent(QPaintEvent *pobjEvt) {
                        Q_UNUSED(pobjEvt);
                    
                        QPainter objPainter(this);
                        QImage* pobjImage(new QImage(":/stale.svg"));
                    
                        bool blnIsNull(pobjImage->isNull());
                        qDebug() << QString("Image isNull: %1").arg(((blnIsNull == true) ? "Yes" : "No"));
                    
                        objPainter.drawImage(10, 10, *pobjImage);
                    }
                    

                    This works absolutely fine and the iamge is displayed correctly. I will not try to use this to figure out why the original isn't working.

                    SPlattenS Offline
                    SPlattenS Offline
                    SPlatten
                    wrote on last edited by
                    #32
                    This post is deleted!
                    1 Reply Last reply
                    0
                    • SPlattenS SPlatten

                      @JoeCFD , I decided to create a simple application to experiment with the resources. I used the same SVG file. The resource file:

                      <RCC>
                          <qresource prefix="/">
                              <file alias="stale.svg">stale.svg</file>
                              <file>mainWindow.qml</file>
                          </qresource>
                      </RCC>
                      

                      In the mainwindow:

                      void MainWindow::paintEvent(QPaintEvent *pobjEvt) {
                          Q_UNUSED(pobjEvt);
                      
                          QPainter objPainter(this);
                          QImage* pobjImage(new QImage(":/stale.svg"));
                      
                          bool blnIsNull(pobjImage->isNull());
                          qDebug() << QString("Image isNull: %1").arg(((blnIsNull == true) ? "Yes" : "No"));
                      
                          objPainter.drawImage(10, 10, *pobjImage);
                      }
                      

                      This works absolutely fine and the iamge is displayed correctly. I will not try to use this to figure out why the original isn't working.

                      JoeCFDJ Offline
                      JoeCFDJ Offline
                      JoeCFD
                      wrote on last edited by JoeCFD
                      #33

                      Create at least two qrc files: one for images and one for qml. Better not to mix them up.

                      1 Reply Last reply
                      1

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved