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. Maintaining aspect ratio of qlabel
Forum Updated to NodeBB v4.3 + New Features

Maintaining aspect ratio of qlabel

Scheduled Pinned Locked Moved Unsolved General and Desktop
22 Posts 4 Posters 6.6k Views 3 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.
  • J.HilkJ J.Hilk

    @Kira well, is your label part of a layout or do you resize it manually?

    because you will have to resize it manually, having it in a layout will make things tricky

    KiraK Offline
    KiraK Offline
    Kira
    wrote on last edited by
    #13

    @J-Hilk : My label is part of the Grid layout.
    I have seen various articles related to the issue, but none of them provide an exact solution. Is there a specific way to handle such a scenario.

    J.HilkJ 1 Reply Last reply
    0
    • KiraK Kira

      @J-Hilk : My label is part of the Grid layout.
      I have seen various articles related to the issue, but none of them provide an exact solution. Is there a specific way to handle such a scenario.

      J.HilkJ Offline
      J.HilkJ Offline
      J.Hilk
      Moderators
      wrote on last edited by
      #14

      @Kira
      Ok, I suggest the following, I used it before with moderate success rate.

      set the SizePolcy of either width or height to fixed.

      inside the overloaded resizeEvent, set the min width/height of your fixed side to the appropriate length (according to the pixmap ratio)

      It should work, but be beware of potential recursive resizeEvents, as this is a clunky workaround.


      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.

      KiraK 1 Reply Last reply
      0
      • J.HilkJ J.Hilk

        @Kira
        Ok, I suggest the following, I used it before with moderate success rate.

        set the SizePolcy of either width or height to fixed.

        inside the overloaded resizeEvent, set the min width/height of your fixed side to the appropriate length (according to the pixmap ratio)

        It should work, but be beware of potential recursive resizeEvents, as this is a clunky workaround.

        KiraK Offline
        KiraK Offline
        Kira
        wrote on last edited by
        #15

        @J-Hilk :
        OK, thanks, understood.
        What does moderate success mean?
        How can I determine the aspect ratio ?
        I will figure the code but would be grateful if you have any working sample.

        J.HilkJ 1 Reply Last reply
        0
        • KiraK Kira

          @J-Hilk :
          OK, thanks, understood.
          What does moderate success mean?
          How can I determine the aspect ratio ?
          I will figure the code but would be grateful if you have any working sample.

          J.HilkJ Offline
          J.HilkJ Offline
          J.Hilk
          Moderators
          wrote on last edited by
          #16

          @Kira

          What does moderate success mean

          when actively resizing the window, you may get "flickering" as the new min size may tricker a new recalculating of the other widgets inside the layout

          How can I determine the aspect ratio
          I will figure the code but would be grateful if you have any working sample

          untested:

          //Assuming horizontal size policy is fixed
          void LabelAnnotation::resizeEvent(QResizeEvent *pQEvent)
          {
              double minw = (static_cast<double>(_qPixmap.width()) * height()) / _qPixmap.height();
             setMinimumWidth(static_cast<int>(minw));
          }
          

          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.

          KiraK 3 Replies Last reply
          2
          • J.HilkJ J.Hilk

            @Kira

            What does moderate success mean

            when actively resizing the window, you may get "flickering" as the new min size may tricker a new recalculating of the other widgets inside the layout

            How can I determine the aspect ratio
            I will figure the code but would be grateful if you have any working sample

            untested:

            //Assuming horizontal size policy is fixed
            void LabelAnnotation::resizeEvent(QResizeEvent *pQEvent)
            {
                double minw = (static_cast<double>(_qPixmap.width()) * height()) / _qPixmap.height();
               setMinimumWidth(static_cast<int>(minw));
            }
            
            KiraK Offline
            KiraK Offline
            Kira
            wrote on last edited by
            #17

            @J-Hilk :Thanks a lot will implement it and let you know.

            1 Reply Last reply
            0
            • J.HilkJ J.Hilk

              @Kira

              What does moderate success mean

              when actively resizing the window, you may get "flickering" as the new min size may tricker a new recalculating of the other widgets inside the layout

              How can I determine the aspect ratio
              I will figure the code but would be grateful if you have any working sample

              untested:

              //Assuming horizontal size policy is fixed
              void LabelAnnotation::resizeEvent(QResizeEvent *pQEvent)
              {
                  double minw = (static_cast<double>(_qPixmap.width()) * height()) / _qPixmap.height();
                 setMinimumWidth(static_cast<int>(minw));
              }
              
              KiraK Offline
              KiraK Offline
              Kira
              wrote on last edited by
              #18

              @J-Hilk : Here are we resizing the window or the QLabel.
              I implemented the following, but still, there is space left when I make the window to full screen.

              J.HilkJ 1 Reply Last reply
              0
              • KiraK Kira

                @J-Hilk : Here are we resizing the window or the QLabel.
                I implemented the following, but still, there is space left when I make the window to full screen.

                J.HilkJ Offline
                J.HilkJ Offline
                J.Hilk
                Moderators
                wrote on last edited by
                #19

                @Kira said in Maintaining aspect ratio of qlabel:

                I implemented the following

                I don't see it. May be lost in the depth of the forum ?


                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
                0
                • J.HilkJ J.Hilk

                  @Kira

                  What does moderate success mean

                  when actively resizing the window, you may get "flickering" as the new min size may tricker a new recalculating of the other widgets inside the layout

                  How can I determine the aspect ratio
                  I will figure the code but would be grateful if you have any working sample

                  untested:

                  //Assuming horizontal size policy is fixed
                  void LabelAnnotation::resizeEvent(QResizeEvent *pQEvent)
                  {
                      double minw = (static_cast<double>(_qPixmap.width()) * height()) / _qPixmap.height();
                     setMinimumWidth(static_cast<int>(minw));
                  }
                  
                  KiraK Offline
                  KiraK Offline
                  Kira
                  wrote on last edited by
                  #20

                  @J-Hilk said in Maintaining aspect ratio of qlabel:

                  void LabelAnnotation::resizeEvent(QResizeEvent *pQEvent)
                  {
                  double minw = (static_cast<double>(_qPixmap.width()) * height()) / _qPixmap.height();
                  setMinimumWidth(static_cast<int>(minw));
                  }

                  This one :)

                  1 Reply Last reply
                  0
                  • J.HilkJ Offline
                    J.HilkJ Offline
                    J.Hilk
                    Moderators
                    wrote on last edited by
                    #21

                    can you show us a screenshot of the image inside the layout, it's still difficult for me to visualize what the issue is exactly ;)


                    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.

                    KiraK 1 Reply Last reply
                    1
                    • J.HilkJ J.Hilk

                      can you show us a screenshot of the image inside the layout, it's still difficult for me to visualize what the issue is exactly ;)

                      KiraK Offline
                      KiraK Offline
                      Kira
                      wrote on last edited by
                      #22

                      @J-Hilk : Sure

                      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