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. QGraphicsView fitInView doesn't do anything on restore (down)
Forum Updated to NodeBB v4.3 + New Features

QGraphicsView fitInView doesn't do anything on restore (down)

Scheduled Pinned Locked Moved Solved General and Desktop
15 Posts 3 Posters 1.0k Views 2 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.
  • SGaistS Offline
    SGaistS Offline
    SGaist
    Lifetime Qt Champion
    wrote on last edited by
    #4

    How do you do your restore ?

    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
    • S Offline
      S Offline
      Sucharek
      wrote on last edited by
      #5

      I don't know how the button is named. It's this one: 82f83ff5-2d69-47d7-89af-eb0e2b01464d-image.png

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

        Silly question, did you check that resizeEvent is properly called when you click the restore button ?

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

        S 1 Reply Last reply
        0
        • SGaistS SGaist

          Silly question, did you check that resizeEvent is properly called when you click the restore button ?

          S Offline
          S Offline
          Sucharek
          wrote on last edited by
          #7

          Hi @SGaist, yes, everytime I resize, restore the window, it activates

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

            Which version of Qt are you using ?
            On which version of Windows ?
            Can you provide a minimal compilable example that shows this behaviour ?

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

            S 1 Reply Last reply
            0
            • SGaistS SGaist

              Which version of Qt are you using ?
              On which version of Windows ?
              Can you provide a minimal compilable example that shows this behaviour ?

              S Offline
              S Offline
              Sucharek
              wrote on last edited by
              #9

              I'm using Qt 5.15.2
              Windows 21H2
              I don't know, only have an issue with resizing the picture, haven't found it in anything else

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

                Just for the sake of testing, what happens if you trigger a single shot QTimer in the resizeEvent to trigger the fitInView ?

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

                S 1 Reply Last reply
                1
                • SGaistS SGaist

                  Just for the sake of testing, what happens if you trigger a single shot QTimer in the resizeEvent to trigger the fitInView ?

                  S Offline
                  S Offline
                  Sucharek
                  wrote on last edited by
                  #11

                  Hi @SGaist, not sure what you meant by that, but I've got this:

                  QTimer timer;
                  timer.singleShot(1000, this, SLOT(QResizeEvent));
                  ui->graphicsView_LeftHand->fitInView(svgLeft, Qt::KeepAspectRatio);
                  

                  And it prints:

                  QObject::connect: Parentheses expected, slot MainWindow::QResizeEvent
                  QObject::connect:  (receiver name: 'MainWindow')
                  
                  JonBJ 1 Reply Last reply
                  0
                  • S Sucharek

                    Hi @SGaist, not sure what you meant by that, but I've got this:

                    QTimer timer;
                    timer.singleShot(1000, this, SLOT(QResizeEvent));
                    ui->graphicsView_LeftHand->fitInView(svgLeft, Qt::KeepAspectRatio);
                    

                    And it prints:

                    QObject::connect: Parentheses expected, slot MainWindow::QResizeEvent
                    QObject::connect:  (receiver name: 'MainWindow')
                    
                    JonBJ Offline
                    JonBJ Offline
                    JonB
                    wrote on last edited by JonB
                    #12

                    @Sucharek
                    @SGaist meant more like:

                    QTimer timer;
                    timer.singleShot(1000, this, [this, svgLeft]() { ui->graphicsView_LeftHand->fitInView(svgLeft, Qt::KeepAspectRatio); });
                    
                    S 1 Reply Last reply
                    1
                    • JonBJ JonB

                      @Sucharek
                      @SGaist meant more like:

                      QTimer timer;
                      timer.singleShot(1000, this, [this, svgLeft]() { ui->graphicsView_LeftHand->fitInView(svgLeft, Qt::KeepAspectRatio); });
                      
                      S Offline
                      S Offline
                      Sucharek
                      wrote on last edited by
                      #13

                      That actually works.
                      Thank you @SGaist and @JonB for helping me.

                      1 Reply Last reply
                      0
                      • S Offline
                        S Offline
                        Sucharek
                        wrote on last edited by
                        #14

                        Hi, just an improvement. Qt creator gave me errors, built anyway, but they were bothering me, so I've made a change:

                        timer.singleShot(0, this, [this]() {ui->graphicsView_LeftHand->fitInView(svgLeft, Qt::KeepAspectRatio);});
                        

                        Thanks again for helping me.

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

                          QTimer::singleShot is a static function so there's no need to create an instance for it.

                          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
                          3

                          • Login

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