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. Issues with QScrollArea and custom widget
Forum Updated to NodeBB v4.3 + New Features

Issues with QScrollArea and custom widget

Scheduled Pinned Locked Moved Solved General and Desktop
qscrollarea
23 Posts 4 Posters 9.2k 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.
  • Joel BodenmannJ Offline
    Joel BodenmannJ Offline
    Joel Bodenmann
    wrote on last edited by
    #11

    @kshegunov said in Issues with QScrollArea and custom widget:

    No idea, my code is usually so bad it doesn't need refactoring but plain rewriting. ;)

    Still waiting on my QAbstractModel merging thingy ;)

    Anyway, forget that for a moment, can you try something like this:

    Here you go: https://www.screencast.com/t/nNbHckWi

    Industrial process automation software: https://simulton.com
    Embedded Graphics & GUI library: https://ugfx.io

    kshegunovK 1 Reply Last reply
    0
    • Joel BodenmannJ Joel Bodenmann

      @kshegunov said in Issues with QScrollArea and custom widget:

      No idea, my code is usually so bad it doesn't need refactoring but plain rewriting. ;)

      Still waiting on my QAbstractModel merging thingy ;)

      Anyway, forget that for a moment, can you try something like this:

      Here you go: https://www.screencast.com/t/nNbHckWi

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

      @Joel-Bodenmann said in Issues with QScrollArea and custom widget:

      Still waiting on my QAbstractModel merging thingy ;)

      I know, I know.

      Here you go: https://www.screencast.com/t/nNbHckWi

      Well, something moved at least. Can you get the paint rects you get when zoomin in/out and when you scroll up/down/left/right along with the image rects and dump them all into a file?

      Read and abide by the Qt Code of Conduct

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

        Hi,

        Might be a silly question but how are you handling UGfxDisplay ?

        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
        0
        • Joel BodenmannJ Offline
          Joel BodenmannJ Offline
          Joel Bodenmann
          wrote on last edited by
          #14

          @kshegunov said in Issues with QScrollArea and custom widget:

          Well, something moved at least. Can you get the paint rects you get when zoomin in/out and when you scroll up/down/left/right along with the image rects and dump them all into a file?

          Sure, I'll get that done.

          @SGaist said in Issues with QScrollArea and custom widget:

          Might be a silly question but how are you handling UGfxDisplay ?

          I'm sorry, I don't understand what handling means in this context. Can you be more specific?

          Industrial process automation software: https://simulton.com
          Embedded Graphics & GUI library: https://ugfx.io

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

            Are you calling something like _centralScrollArea->setWidget(_myGDisplay); ?

            Then, are you sure that you should handle the scaling in GDisplay ?

            When zooming, what about having something like _myGDisplay->resize(_scale * _sourceSize); So you only handle painting in that widget.

            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
            0
            • kshegunovK kshegunov

              @Joel-Bodenmann said in Issues with QScrollArea and custom widget:

              Still waiting on my QAbstractModel merging thingy ;)

              I know, I know.

              Here you go: https://www.screencast.com/t/nNbHckWi

              Well, something moved at least. Can you get the paint rects you get when zoomin in/out and when you scroll up/down/left/right along with the image rects and dump them all into a file?

              Joel BodenmannJ Offline
              Joel BodenmannJ Offline
              Joel Bodenmann
              wrote on last edited by
              #16

              @kshegunov said in Issues with QScrollArea and custom widget:

              Well, something moved at least. Can you get the paint rects you get when zoomin in/out and when you scroll up/down/left/right along with the image rects and dump them all into a file?

              Here you go: http://paste.ugfx.io/show/a5113bcc08

              @SGaist said in Issues with QScrollArea and custom widget:

              Are you calling something like _centralScrollArea->setWidget(_myGDisplay); ?

              Yep, that's what I am doing.

              @SGaist said in Issues with QScrollArea and custom widget:

              When zooming, what about having something like _myGDisplay->resize(_scale * _sourceSize); So you only handle painting in that widget.

              In my opinion that won't work as it will not scale up the contents inside of my UGfxDisplay. Keep in mind that the QPixmap I draw in my UGfxDisplay::paintEvent() is the content of a virtual display. That virtual display has a given size (width and height) in pixels. When zooming in I need to scale up everything. I don't display more of the widget, I just display the same content bigger.

              Industrial process automation software: https://simulton.com
              Embedded Graphics & GUI library: https://ugfx.io

              kshegunovK 1 Reply Last reply
              0
              • Joel BodenmannJ Joel Bodenmann

                @kshegunov said in Issues with QScrollArea and custom widget:

                Well, something moved at least. Can you get the paint rects you get when zoomin in/out and when you scroll up/down/left/right along with the image rects and dump them all into a file?

                Here you go: http://paste.ugfx.io/show/a5113bcc08

                @SGaist said in Issues with QScrollArea and custom widget:

                Are you calling something like _centralScrollArea->setWidget(_myGDisplay); ?

                Yep, that's what I am doing.

                @SGaist said in Issues with QScrollArea and custom widget:

                When zooming, what about having something like _myGDisplay->resize(_scale * _sourceSize); So you only handle painting in that widget.

                In my opinion that won't work as it will not scale up the contents inside of my UGfxDisplay. Keep in mind that the QPixmap I draw in my UGfxDisplay::paintEvent() is the content of a virtual display. That virtual display has a given size (width and height) in pixels. When zooming in I need to scale up everything. I don't display more of the widget, I just display the same content bigger.

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

                Have you noticed your image doesn't grow (or shrink)?

                Read and abide by the Qt Code of Conduct

                1 Reply Last reply
                0
                • Joel BodenmannJ Offline
                  Joel BodenmannJ Offline
                  Joel Bodenmann
                  wrote on last edited by
                  #18

                  The image is not supposed to grow. The image represents the contents of the virtual display. It will always have the same amount of pixels no matter how much I zoom into the UGfxDisplay widget. My virtual display does not grow by zooming into it :p

                  Industrial process automation software: https://simulton.com
                  Embedded Graphics & GUI library: https://ugfx.io

                  kshegunovK 1 Reply Last reply
                  0
                  • Joel BodenmannJ Joel Bodenmann

                    The image is not supposed to grow. The image represents the contents of the virtual display. It will always have the same amount of pixels no matter how much I zoom into the UGfxDisplay widget. My virtual display does not grow by zooming into it :p

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

                    But why are you redrawing reinitializing it at each paint event then? It got me confused, now I believe I know what you want. Should be something like this (I *think*):

                    painter.drawImage(event->rect(), img, event->rect() / _scale);
                    

                    PS. Or not. I need to think.
                    PS. After thinking:

                    QRect paintRect = event->rect();
                    QRect sourceRect(paintRect.topLeft() / _scale, paintRect.size() / _scale);
                    painter.drawImage(paintRect, img, sourceRect);
                    

                    Read and abide by the Qt Code of Conduct

                    1 Reply Last reply
                    2
                    • Joel BodenmannJ Offline
                      Joel BodenmannJ Offline
                      Joel Bodenmann
                      wrote on last edited by Joel Bodenmann
                      #20

                      Wooo, I love you \o/ (still, not again, don't worry honey)

                      This is with your "After thinking" code: https://www.screencast.com/t/cEAa2z4Zd

                      In retrospect this seems somewhat obvious...

                      Industrial process automation software: https://simulton.com
                      Embedded Graphics & GUI library: https://ugfx.io

                      kshegunovK 1 Reply Last reply
                      0
                      • Joel BodenmannJ Joel Bodenmann

                        Wooo, I love you \o/ (still, not again, don't worry honey)

                        This is with your "After thinking" code: https://www.screencast.com/t/cEAa2z4Zd

                        In retrospect this seems somewhat obvious...

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

                        @Joel-Bodenmann said in Issues with QScrollArea and custom widget:

                        Wooo, I love you

                        Nice! Love and world peace and such things. ;)

                        In retrospect this seems somewhat obvious...

                        Yes, quantum mechanics also seems rather obvious to me ... after a few people thought and invented it. ;)

                        Read and abide by the Qt Code of Conduct

                        Joel BodenmannJ 1 Reply Last reply
                        0
                        • kshegunovK kshegunov

                          @Joel-Bodenmann said in Issues with QScrollArea and custom widget:

                          Wooo, I love you

                          Nice! Love and world peace and such things. ;)

                          In retrospect this seems somewhat obvious...

                          Yes, quantum mechanics also seems rather obvious to me ... after a few people thought and invented it. ;)

                          Joel BodenmannJ Offline
                          Joel BodenmannJ Offline
                          Joel Bodenmann
                          wrote on last edited by Joel Bodenmann
                          #22

                          @kshegunov said in Issues with QScrollArea and custom widget:

                          Yes, quantum mechanics also seems rather obvious to me ... after a few people thought and invented it. ;)

                          invented? ;)
                          Too bad those people didn't teach you how to write nice code though :p

                          Thank you for your help guys, much appreciated!

                          Industrial process automation software: https://simulton.com
                          Embedded Graphics & GUI library: https://ugfx.io

                          kshegunovK 1 Reply Last reply
                          0
                          • Joel BodenmannJ Joel Bodenmann

                            @kshegunov said in Issues with QScrollArea and custom widget:

                            Yes, quantum mechanics also seems rather obvious to me ... after a few people thought and invented it. ;)

                            invented? ;)
                            Too bad those people didn't teach you how to write nice code though :p

                            Thank you for your help guys, much appreciated!

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

                            @Joel-Bodenmann said in Issues with QScrollArea and custom widget:

                            Too bad those people didn't teach you how to write nice code though :p

                            This is all a fault of my own, sadly, but hey life's not all roses ... :)

                            Thank you for your help guys, much appreciated!

                            You are welcome. Now go and make us proud! ;D

                            Read and abide by the Qt Code of Conduct

                            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