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.9k 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 Offline
    JoeCFDJ Offline
    JoeCFD
    wrote on last edited by
    #21

    simply:
    source: "/images/stale.svg"

    SPlattenS 1 Reply Last reply
    0
    • JoeCFDJ JoeCFD

      simply:
      source: "/images/stale.svg"

      SPlattenS Offline
      SPlattenS Offline
      SPlatten
      wrote on last edited by
      #22
      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
        #23

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

        SPlattenS 1 Reply Last reply
        0
        • 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