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. loading image file into label

loading image file into label

Scheduled Pinned Locked Moved Solved General and Desktop
11 Posts 3 Posters 2.4k Views
  • 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.
  • N Offline
    N Offline
    Natural_Bugger
    wrote on 28 Oct 2019, 09:57 last edited by aha_1980
    #1

    Hi,

    i loaded via designer a "jpeg" file into a label and everything is fine.
    but after compiling the nothing shows up.

    i used the code code from this topic:
    link text

    QImageReader read("123.jpeg");
    QImage image = read.read();
    
    if (!image.isNull()){
        QMessageBox::information(this, "is loaded","",QMessageBox::Ok);
    }
    else{
        QMessageBox::information(this, "not loaded","",QMessageBox::Ok);
    }
    

    but the "not" loaded Messagebox appears.

    the image file resides in the project folder.

    do you need to do something special like in Visual Studio, add to Recources?
    i have added the file into the project as "add eisting file".

    kind regards.

    1 Reply Last reply
    0
    • M Offline
      M Offline
      mrjj
      Lifetime Qt Champion
      wrote on 28 Oct 2019, 12:59 last edited by mrjj
      #8

      Hi
      Just as a note.
      Unless you really want QImage first and use QImageReader etc then
      this is also working

      ui->label_picture->setPixmap(QPixmap(":/123.jpeg"));
      Let the pixmap load it directly by self.

      1 Reply Last reply
      4
      • M Offline
        M Offline
        mrjj
        Lifetime Qt Champion
        wrote on 28 Oct 2019, 11:19 last edited by
        #2

        Hi
        The path is wrong
        When the program is run, the current folder is the build folder
        and not the project folder so it won't be able to find the "123.jpeg" in the project folder.

        The easy way is to include a resource file to the project and then add the image to the resource file
        and then use the correct syntax

        QImageReader read(":/123.jpeg");
        notice the :/ in front

        N 1 Reply Last reply 28 Oct 2019, 12:27
        6
        • J Offline
          J Offline
          J.Hilk
          Moderators
          wrote on 28 Oct 2019, 11:34 last edited by J.Hilk
          #3

          to add to @mrjj
          here are further information about Qt's resource system

          https://doc.qt.io/qt-5/resources.html

          also make sure to rerun qmake after adding a new resource file and/or resource to your resource file


          Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


          Q: What's that?
          A: It's blue light.
          Q: What does it do?
          A: It turns blue.

          1 Reply Last reply
          2
          • M mrjj
            28 Oct 2019, 11:19

            Hi
            The path is wrong
            When the program is run, the current folder is the build folder
            and not the project folder so it won't be able to find the "123.jpeg" in the project folder.

            The easy way is to include a resource file to the project and then add the image to the resource file
            and then use the correct syntax

            QImageReader read(":/123.jpeg");
            notice the :/ in front

            N Offline
            N Offline
            Natural_Bugger
            wrote on 28 Oct 2019, 12:27 last edited by
            #4

            @mrjj

            thnx, that worked.

                QPixmap pixmap;
                QImageReader read(":/123.jpeg");
                QImage image = read.read();
            
                if (!image.isNull()){
                    QMessageBox::information(this, "is loaded","",QMessageBox::Ok);
                    ui->label_picture->pixmap(pixmap.fromImage(image));
                }
                else{
                    QMessageBox::information(this, "not loaded","",QMessageBox::Ok);
                }
            

            the image is loaded, but ...

            ui->label_picture->pixmap(pixmap.fromImage(image));
            

            results in:

            error: no matching function for call to 'QLabel::pixmap(QPixmap)'
                     ui->label_picture->pixmap(pixmap.fromImage(image));
                                                                      ^
            

            i also tried:

            ui->label_picture->pixmap.load(image);
            

            but also no working:

            error: '((MainWindow*)this)->MainWindow::ui->Ui::MainWindow::<anonymous>.Ui_MainWindow::label_picture->QLabel::pixmap' does not have class type
                     ui->label_picture->pixmap.load(image);
                     ^
            
            J 1 Reply Last reply 28 Oct 2019, 12:40
            0
            • N Natural_Bugger
              28 Oct 2019, 12:27

              @mrjj

              thnx, that worked.

                  QPixmap pixmap;
                  QImageReader read(":/123.jpeg");
                  QImage image = read.read();
              
                  if (!image.isNull()){
                      QMessageBox::information(this, "is loaded","",QMessageBox::Ok);
                      ui->label_picture->pixmap(pixmap.fromImage(image));
                  }
                  else{
                      QMessageBox::information(this, "not loaded","",QMessageBox::Ok);
                  }
              

              the image is loaded, but ...

              ui->label_picture->pixmap(pixmap.fromImage(image));
              

              results in:

              error: no matching function for call to 'QLabel::pixmap(QPixmap)'
                       ui->label_picture->pixmap(pixmap.fromImage(image));
                                                                        ^
              

              i also tried:

              ui->label_picture->pixmap.load(image);
              

              but also no working:

              error: '((MainWindow*)this)->MainWindow::ui->Ui::MainWindow::<anonymous>.Ui_MainWindow::label_picture->QLabel::pixmap' does not have class type
                       ui->label_picture->pixmap.load(image);
                       ^
              
              J Offline
              J Offline
              J.Hilk
              Moderators
              wrote on 28 Oct 2019, 12:40 last edited by
              #5

              @Natural_Bugger

              setPixmap is the setter function.

              ui->label_picture->setPixmap(Pixmap::fromImage(image));
              

              Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


              Q: What's that?
              A: It's blue light.
              Q: What does it do?
              A: It turns blue.

              N 1 Reply Last reply 28 Oct 2019, 12:51
              3
              • J J.Hilk
                28 Oct 2019, 12:40

                @Natural_Bugger

                setPixmap is the setter function.

                ui->label_picture->setPixmap(Pixmap::fromImage(image));
                
                N Offline
                N Offline
                Natural_Bugger
                wrote on 28 Oct 2019, 12:51 last edited by
                #6

                @J-Hilk

                thnx for your help.

                        QPixmap pixmap;
                        QImageReader read(":/123.jpeg");
                        QImage image = read.read();
                        pixmap.fromImage(image);
                    
                        if (!image.isNull()){
                            QMessageBox::information(this, "is loaded","",QMessageBox::Ok);
                
                            ui->label_picture->setPixmap(pixmap);
                        }
                        else{
                            QMessageBox::information(this, "not loaded","",QMessageBox::Ok);
                        }
                

                QMessageBox = "is loaded"
                but still doesn't show up in the label / user interface, although it compiles without errors and executes.

                J 1 Reply Last reply 28 Oct 2019, 12:56
                0
                • N Natural_Bugger
                  28 Oct 2019, 12:51

                  @J-Hilk

                  thnx for your help.

                          QPixmap pixmap;
                          QImageReader read(":/123.jpeg");
                          QImage image = read.read();
                          pixmap.fromImage(image);
                      
                          if (!image.isNull()){
                              QMessageBox::information(this, "is loaded","",QMessageBox::Ok);
                  
                              ui->label_picture->setPixmap(pixmap);
                          }
                          else{
                              QMessageBox::information(this, "not loaded","",QMessageBox::Ok);
                          }
                  

                  QMessageBox = "is loaded"
                  but still doesn't show up in the label / user interface, although it compiles without errors and executes.

                  J Offline
                  J Offline
                  J.Hilk
                  Moderators
                  wrote on 28 Oct 2019, 12:56 last edited by
                  #7

                  @Natural_Bugger
                  I deliberitly wrote Pixmap::fromImage(image) because fromPixmap returns a pixmap. It does not apply it on itself!


                  Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                  Q: What's that?
                  A: It's blue light.
                  Q: What does it do?
                  A: It turns blue.

                  N 1 Reply Last reply 28 Oct 2019, 13:04
                  0
                  • M Offline
                    M Offline
                    mrjj
                    Lifetime Qt Champion
                    wrote on 28 Oct 2019, 12:59 last edited by mrjj
                    #8

                    Hi
                    Just as a note.
                    Unless you really want QImage first and use QImageReader etc then
                    this is also working

                    ui->label_picture->setPixmap(QPixmap(":/123.jpeg"));
                    Let the pixmap load it directly by self.

                    1 Reply Last reply
                    4
                    • J J.Hilk
                      28 Oct 2019, 12:56

                      @Natural_Bugger
                      I deliberitly wrote Pixmap::fromImage(image) because fromPixmap returns a pixmap. It does not apply it on itself!

                      N Offline
                      N Offline
                      Natural_Bugger
                      wrote on 28 Oct 2019, 13:04 last edited by
                      #9

                      @J-Hilk

                      i tried that, but ...

                      ui->label_picture->setPixmap(Pixmap::fromImage(image));
                      

                      results in:

                      error: 'Pixmap' has not been declared
                               ui->label_picture->setPixmap(Pixmap::fromImage(image));
                                                            ^
                      

                      i tried to solve it and i changed Pixmap into pixmap, which resulted in:

                      error: 'pixmap' is not a class, namespace, or enumeration
                               ui->label_picture->setPixmap(pixmap::fromImage(image));
                                                            ^
                      

                      i'm rusty

                      J 1 Reply Last reply 28 Oct 2019, 13:06
                      0
                      • N Natural_Bugger
                        28 Oct 2019, 13:04

                        @J-Hilk

                        i tried that, but ...

                        ui->label_picture->setPixmap(Pixmap::fromImage(image));
                        

                        results in:

                        error: 'Pixmap' has not been declared
                                 ui->label_picture->setPixmap(Pixmap::fromImage(image));
                                                              ^
                        

                        i tried to solve it and i changed Pixmap into pixmap, which resulted in:

                        error: 'pixmap' is not a class, namespace, or enumeration
                                 ui->label_picture->setPixmap(pixmap::fromImage(image));
                                                              ^
                        

                        i'm rusty

                        J Offline
                        J Offline
                        J.Hilk
                        Moderators
                        wrote on 28 Oct 2019, 13:06 last edited by
                        #10

                        @Natural_Bugger
                        I'm terribly sorry, I think the auto correction removed the Qfrom QPixmap

                        ui->label_picture->setPixmap(QPixmap::fromImage(image));
                        

                        Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                        Q: What's that?
                        A: It's blue light.
                        Q: What does it do?
                        A: It turns blue.

                        1 Reply Last reply
                        3
                        • N Offline
                          N Offline
                          Natural_Bugger
                          wrote on 28 Oct 2019, 13:28 last edited by
                          #11

                          @mrjj

                          thnx, that worked.

                          @J-Hilk

                          thnx, now it's working.

                          1 Reply Last reply
                          0

                          2/11

                          28 Oct 2019, 11:19

                          topic:navigator.unread, 9
                          • Login

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