Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Qt resource not showing up in static build...
Forum Updated to NodeBB v4.3 + New Features

Qt resource not showing up in static build...

Scheduled Pinned Locked Moved Solved General and Desktop
42 Posts 5 Posters 14.8k Views 4 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.
  • mzimmersM Offline
    mzimmersM Offline
    mzimmers
    wrote on last edited by
    #1

    ...when I build my app in debug/dynamic mode, I get one of my resources (an image) displaying just fine. When I build it in release/static, I don't see it.

    I read a page about needing to explicitly reference resources when creating a static library but this is just an executable, so I don't think that applies. Any idea what I'm doing wrong?

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi,

      Are you talking about Q_INIT_RESOURCE ?

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      1
      • mzimmersM Offline
        mzimmersM Offline
        mzimmers
        wrote on last edited by
        #3

        Yeah, mentioned here. But, if I'm reading the document correctly, that shouldn't apply to my example.

        mrjjM 1 Reply Last reply
        0
        • mzimmersM mzimmers

          Yeah, mentioned here. But, if I'm reading the document correctly, that shouldn't apply to my example.

          mrjjM Offline
          mrjjM Offline
          mrjj
          Lifetime Qt Champion
          wrote on last edited by
          #4

          @mzimmers
          Hi
          You mean when you produce a static linked .exe ( with our own static compiled Qt) ( not the same as release mode vs debug mode )
          the compiled in qres file does not work?

          And you have it in the project like ?
          alt text

          mzimmersM 1 Reply Last reply
          0
          • mrjjM mrjj

            @mzimmers
            Hi
            You mean when you produce a static linked .exe ( with our own static compiled Qt) ( not the same as release mode vs debug mode )
            the compiled in qres file does not work?

            And you have it in the project like ?
            alt text

            mzimmersM Offline
            mzimmersM Offline
            mzimmers
            wrote on last edited by
            #5

            @mrjj yes on both counts. I am getting an error message at runtime:

            QPixmap::scaled: Pixmap is a null pixmap

            Here's the code I use to display it:

                QPixmap logo(":/logos/logo1color.svg"); // .svg file created from .png file with http://www.autotracer.org/
                QSize logoSize = ui->logoLabel->size();
                ui->logoLabel->setPixmap(logo.scaled(logoSize, Qt::KeepAspectRatio, Qt::SmoothTransformation));
            

            And again, it's working when built for debug.

            mrjjM kshegunovK 2 Replies Last reply
            0
            • mzimmersM mzimmers

              @mrjj yes on both counts. I am getting an error message at runtime:

              QPixmap::scaled: Pixmap is a null pixmap

              Here's the code I use to display it:

                  QPixmap logo(":/logos/logo1color.svg"); // .svg file created from .png file with http://www.autotracer.org/
                  QSize logoSize = ui->logoLabel->size();
                  ui->logoLabel->setPixmap(logo.scaled(logoSize, Qt::KeepAspectRatio, Qt::SmoothTransformation));
              

              And again, it's working when built for debug.

              mrjjM Offline
              mrjjM Offline
              mrjj
              Lifetime Qt Champion
              wrote on last edited by
              #6

              @mzimmers
              Hi, svg is a normally plugin. maybe it was not compiled in ?
              Did you try with a png or a more native image?

              mzimmersM 1 Reply Last reply
              0
              • mzimmersM mzimmers

                @mrjj yes on both counts. I am getting an error message at runtime:

                QPixmap::scaled: Pixmap is a null pixmap

                Here's the code I use to display it:

                    QPixmap logo(":/logos/logo1color.svg"); // .svg file created from .png file with http://www.autotracer.org/
                    QSize logoSize = ui->logoLabel->size();
                    ui->logoLabel->setPixmap(logo.scaled(logoSize, Qt::KeepAspectRatio, Qt::SmoothTransformation));
                

                And again, it's working when built for debug.

                kshegunovK Offline
                kshegunovK Offline
                kshegunov
                Moderators
                wrote on last edited by
                #7

                Can you show your project's file structure? It probably is a path issue (difference) between the release and debug builds.

                Read and abide by the Qt Code of Conduct

                1 Reply Last reply
                1
                • mrjjM Offline
                  mrjjM Offline
                  mrjj
                  Lifetime Qt Champion
                  wrote on last edited by
                  #8

                  Also to be clear.
                  It does work in statically linked debug version but not in a
                  statically linked release version?
                  That is odd.
                  When you made your statically linkable Qt, you did use release mode?

                  mzimmersM 1 Reply Last reply
                  0
                  • mrjjM mrjj

                    @mzimmers
                    Hi, svg is a normally plugin. maybe it was not compiled in ?
                    Did you try with a png or a more native image?

                    mzimmersM Offline
                    mzimmersM Offline
                    mzimmers
                    wrote on last edited by
                    #9

                    @mrjj yes, I tried other formats...they looked terrible so I went to .svg.

                    @kshegunov: project file layout is entirely flat...do I need a subdirectory called /logos?

                    1 Reply Last reply
                    0
                    • mrjjM mrjj

                      Also to be clear.
                      It does work in statically linked debug version but not in a
                      statically linked release version?
                      That is odd.
                      When you made your statically linkable Qt, you did use release mode?

                      mzimmersM Offline
                      mzimmersM Offline
                      mzimmers
                      wrote on last edited by
                      #10

                      @mrjj not quite: it works in dynamic/debug, but not in static/release. I haven't tried the other permutations yet.

                      kshegunovK 1 Reply Last reply
                      0
                      • mzimmersM mzimmers

                        @mrjj not quite: it works in dynamic/debug, but not in static/release. I haven't tried the other permutations yet.

                        kshegunovK Offline
                        kshegunovK Offline
                        kshegunov
                        Moderators
                        wrote on last edited by kshegunov
                        #11

                        Aha! So your debug is in fact dynamically linked. Then do the manual resource initialization as @SGaist hinted!

                        Read and abide by the Qt Code of Conduct

                        mzimmersM 1 Reply Last reply
                        0
                        • kshegunovK kshegunov

                          Aha! So your debug is in fact dynamically linked. Then do the manual resource initialization as @SGaist hinted!

                          mzimmersM Offline
                          mzimmersM Offline
                          mzimmers
                          wrote on last edited by
                          #12

                          @kshegunov sorry - I thought I'd made that clear in my OP.

                          I've added this line to my main (my resource file is called "resources.qrc"):

                              Q_INIT_RESOURCE(resources);
                          

                          Still doesn't show, and I'm getting that null pixmap error.

                          1 Reply Last reply
                          0
                          • SGaistS Offline
                            SGaistS Offline
                            SGaist
                            Lifetime Qt Champion
                            wrote on last edited by
                            #13

                            Do you have several resources named like that ?

                            Interested in AI ? www.idiap.ch
                            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                            mzimmersM 1 Reply Last reply
                            0
                            • SGaistS SGaist

                              Do you have several resources named like that ?

                              mzimmersM Offline
                              mzimmersM Offline
                              mzimmers
                              wrote on last edited by
                              #14

                              @SGaist I'm not sure what you mean by "named like that," but I only have one .qrc file, and it only has two files in it.

                              kshegunovK 1 Reply Last reply
                              0
                              • mzimmersM mzimmers

                                @SGaist I'm not sure what you mean by "named like that," but I only have one .qrc file, and it only has two files in it.

                                kshegunovK Offline
                                kshegunovK Offline
                                kshegunov
                                Moderators
                                wrote on last edited by
                                #15

                                Okay, can you grab a screenshot from the resource editor? Unless that path is an alias, then you need to put the image into that folder under the project. I personally always alias the things because it feels quite clumsy otherwise ...

                                Read and abide by the Qt Code of Conduct

                                1 Reply Last reply
                                0
                                • mzimmersM Offline
                                  mzimmersM Offline
                                  mzimmers
                                  wrote on last edited by mzimmers
                                  #16

                                  So I need a subdirectory in my source folder? I'll try that.

                                  0_1508880996044_resource.PNG

                                  EDIT: just moved logo to a subfolder, rebuilt and now I'm getting an error:

                                  [release/qrc_resources.cpp] Error 1

                                  So I deleted the moved file and re-added it. Still getting the null pixmap error.

                                  kshegunovK 1 Reply Last reply
                                  0
                                  • mzimmersM mzimmers

                                    So I need a subdirectory in my source folder? I'll try that.

                                    0_1508880996044_resource.PNG

                                    EDIT: just moved logo to a subfolder, rebuilt and now I'm getting an error:

                                    [release/qrc_resources.cpp] Error 1

                                    So I deleted the moved file and re-added it. Still getting the null pixmap error.

                                    kshegunovK Offline
                                    kshegunovK Offline
                                    kshegunov
                                    Moderators
                                    wrote on last edited by
                                    #17

                                    @mzimmers said in Qt resource not showing up in static build...:

                                    just moved logo to a subfolder, rebuilt and now I'm getting an error:

                                    Not any subfolder, looking at the screenshot you need a folder called logos under your project root. Then readd the file and I think it should work.

                                    Read and abide by the Qt Code of Conduct

                                    mzimmersM 1 Reply Last reply
                                    0
                                    • kshegunovK kshegunov

                                      @mzimmers said in Qt resource not showing up in static build...:

                                      just moved logo to a subfolder, rebuilt and now I'm getting an error:

                                      Not any subfolder, looking at the screenshot you need a folder called logos under your project root. Then readd the file and I think it should work.

                                      mzimmersM Offline
                                      mzimmersM Offline
                                      mzimmers
                                      wrote on last edited by mzimmers
                                      #18

                                      @kshegunov no joy.

                                      0_1508882322220_folder.PNG
                                      EDIT: put some text in here to separate the pics.
                                      0_1508882354954_qt.PNG

                                      But at least now it's missing from both the debug and release versions...

                                      kshegunovK 1 Reply Last reply
                                      0
                                      • mzimmersM mzimmers

                                        @kshegunov no joy.

                                        0_1508882322220_folder.PNG
                                        EDIT: put some text in here to separate the pics.
                                        0_1508882354954_qt.PNG

                                        But at least now it's missing from both the debug and release versions...

                                        kshegunovK Offline
                                        kshegunovK Offline
                                        kshegunov
                                        Moderators
                                        wrote on last edited by
                                        #19

                                        But now your resource tree looks funny, you have two folders named "logos" there ...?

                                        Read and abide by the Qt Code of Conduct

                                        1 Reply Last reply
                                        0
                                        • mzimmersM Offline
                                          mzimmersM Offline
                                          mzimmers
                                          wrote on last edited by
                                          #20

                                          OK, I obviously don't know what's going on here. The resource editor requires me to add a prefix before I can add a file. When I add the file, if it's in a subdirectory, that gets prepended to the file name. This is why you're seeing what appears to be two levels of folders.

                                          I don't know how to do this differently.

                                          kshegunovK 1 Reply Last reply
                                          0

                                          • Login

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