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.1k 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
    #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