Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt for Python
  4. QGraphicsView showEvent not working.

QGraphicsView showEvent not working.

Scheduled Pinned Locked Moved Unsolved Qt for Python
pyqt5showevent
23 Posts 6 Posters 3.9k 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.
  • jeremy_kJ jeremy_k

    The indentation is wrong for that definition of showEvent() to be part of PhotoViewer.

    D Offline
    D Offline
    darrenleeleelee1
    wrote on last edited by
    #11

    @jeremy_k sorry, what did you mean, I do not understand well.

    mrjjM jsulmJ 2 Replies Last reply
    0
    • D darrenleeleelee1

      @jeremy_k sorry, what did you mean, I do not understand well.

      mrjjM Offline
      mrjjM Offline
      mrjj
      Lifetime Qt Champion
      wrote on last edited by
      #12

      @darrenleeleelee1

      Hi
      The function is too much intended so its not part of the class

      alt text

      1 Reply Last reply
      1
      • D darrenleeleelee1

        @jeremy_k sorry, what did you mean, I do not understand well.

        jsulmJ Offline
        jsulmJ Offline
        jsulm
        Lifetime Qt Champion
        wrote on last edited by
        #13

        @darrenleeleelee1

        class PhotoViewer(QtWidgets.QGraphicsView):
            tool_lock = 'mouse'
            def __init__(self, parent):
                ...
            
            def showEvent(self, event):
                super().showEvent(event)
                print("Test")
                self.showEventHelper()
            def showEventHelper(self):
                self.fitInView()
        

        https://forum.qt.io/topic/113070/qt-code-of-conduct

        D 2 Replies Last reply
        3
        • jsulmJ jsulm

          @darrenleeleelee1

          class PhotoViewer(QtWidgets.QGraphicsView):
              tool_lock = 'mouse'
              def __init__(self, parent):
                  ...
              
              def showEvent(self, event):
                  super().showEvent(event)
                  print("Test")
                  self.showEventHelper()
              def showEventHelper(self):
                  self.fitInView()
          
          D Offline
          D Offline
          darrenleeleelee1
          wrote on last edited by
          #14

          @jsulm oh, sorry I am not notice that, but this is not a problem, it way my typo when I copy from my vscode, in my vscode is

          class PhotoViewer(QtWidgets.QGraphicsView):
              tool_lock = 'mouse'
              def __init__(self, parent):
                  super(PhotoViewer, self).__init__(parent)
                  ...
              def showEvent(self, event):
                  super().showEvent(event)
                  print("Test")
                  self.showEventHelper()
              def showEventHelper(self):
                  self.fitInView()
          

          and the problem still not solve.

          1 Reply Last reply
          0
          • jsulmJ jsulm

            @darrenleeleelee1

            class PhotoViewer(QtWidgets.QGraphicsView):
                tool_lock = 'mouse'
                def __init__(self, parent):
                    ...
                
                def showEvent(self, event):
                    super().showEvent(event)
                    print("Test")
                    self.showEventHelper()
                def showEventHelper(self):
                    self.fitInView()
            
            D Offline
            D Offline
            darrenleeleelee1
            wrote on last edited by darrenleeleelee1
            #15

            @jsulm sorry it is my mistake, the print("Test") still not be run.Even when I correct the scope of functions.

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

              Hi,

              There's an issue with your init function. The first parameter shall be a scene, the second is the parent.

              See the class documentation

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

              jeremy_kJ 1 Reply Last reply
              0
              • SGaistS SGaist

                Hi,

                There's an issue with your init function. The first parameter shall be a scene, the second is the parent.

                See the class documentation

                jeremy_kJ Offline
                jeremy_kJ Offline
                jeremy_k
                wrote on last edited by
                #17

                @SGaist I wonder if that documentation is malformatted due to Python not supporting function overloading. The highlighted line indicates two arguments for the constructor. Inset below that appears to be a second constructor version that only accepts an optional QWidget parent. The two sentences at the end initially attracted my attention.

                1532348d-e0f8-4cdf-b1c8-4722c85296db-image.png

                Asking a question about code? http://eel.is/iso-c++/testcase/

                JonBJ 1 Reply Last reply
                0
                • jeremy_kJ jeremy_k

                  @SGaist I wonder if that documentation is malformatted due to Python not supporting function overloading. The highlighted line indicates two arguments for the constructor. Inset below that appears to be a second constructor version that only accepts an optional QWidget parent. The two sentences at the end initially attracted my attention.

                  1532348d-e0f8-4cdf-b1c8-4722c85296db-image.png

                  JonBJ Offline
                  JonBJ Offline
                  JonB
                  wrote on last edited by
                  #18

                  @jeremy_k
                  Are you just commenting on the confusion, or have you changed your code? Whatever the case you will need to set the view's scene, either through the constructor or via setScene().

                  jeremy_kJ 1 Reply Last reply
                  0
                  • JonBJ JonB

                    @jeremy_k
                    Are you just commenting on the confusion, or have you changed your code? Whatever the case you will need to set the view's scene, either through the constructor or via setScene().

                    jeremy_kJ Offline
                    jeremy_kJ Offline
                    jeremy_k
                    wrote on last edited by
                    #19

                    @JonB It's not my code.

                    I'm not convinced that misuse of the constructor which doesn't throw an exception or lead to program termination will cause a correctly implemented showEvent() to be ignored. A view without a scene is blank, but still a valid and showable QWidget.

                    import PyQt5.QtWidgets as QtWidgets
                    
                    class View(QtWidgets.QGraphicsView):
                        def showEvent(self, event):
                            print("showEvent")
                            super().showEvent(event)
                    
                    app = QtWidgets.QApplication([])
                    view = View()
                    view.show()
                    
                    ~:$ python test.py
                    showEvent
                    

                    Asking a question about code? http://eel.is/iso-c++/testcase/

                    JonBJ 1 Reply Last reply
                    0
                    • jeremy_kJ jeremy_k

                      @JonB It's not my code.

                      I'm not convinced that misuse of the constructor which doesn't throw an exception or lead to program termination will cause a correctly implemented showEvent() to be ignored. A view without a scene is blank, but still a valid and showable QWidget.

                      import PyQt5.QtWidgets as QtWidgets
                      
                      class View(QtWidgets.QGraphicsView):
                          def showEvent(self, event):
                              print("showEvent")
                              super().showEvent(event)
                      
                      app = QtWidgets.QApplication([])
                      view = View()
                      view.show()
                      
                      ~:$ python test.py
                      showEvent
                      
                      JonBJ Offline
                      JonBJ Offline
                      JonB
                      wrote on last edited by JonB
                      #20

                      @jeremy_k said in QGraphicsView showEvent not working.:

                      A view without a scene is blank, but still a valid and showable QWidget.

                      I was not aware of this. Your code shows showEvent being printed. Originally you said "Test never be printed out". So what is the situation?

                      jeremy_kJ 1 Reply Last reply
                      0
                      • JonBJ JonB

                        @jeremy_k said in QGraphicsView showEvent not working.:

                        A view without a scene is blank, but still a valid and showable QWidget.

                        I was not aware of this. Your code shows showEvent being printed. Originally you said "Test never be printed out". So what is the situation?

                        jeremy_kJ Offline
                        jeremy_kJ Offline
                        jeremy_k
                        wrote on last edited by jeremy_k
                        #21

                        @JonB said in QGraphicsView showEvent not working.:

                        @jeremy_k said in QGraphicsView showEvent not working.:

                        A view without a scene is blank, but still a valid and showable QWidget.

                        I was not aware of this. Your code shows showEvent being printed. Originally you said "Test never be printed out".

                        I'm not the OP.

                        Asking a question about code? http://eel.is/iso-c++/testcase/

                        JonBJ 1 Reply Last reply
                        1
                        • jeremy_kJ jeremy_k

                          @JonB said in QGraphicsView showEvent not working.:

                          @jeremy_k said in QGraphicsView showEvent not working.:

                          A view without a scene is blank, but still a valid and showable QWidget.

                          I was not aware of this. Your code shows showEvent being printed. Originally you said "Test never be printed out".

                          I'm not the OP.

                          JonBJ Offline
                          JonBJ Offline
                          JonB
                          wrote on last edited by JonB
                          #22

                          @jeremy_k
                          Oh, LOL, sorry about that! Well @darrenleeleelee1, what is the difference between your case where you say showEvent() is not hit and @jeremy_k's case where he shows it being hit? Or has this been solved and I am not understanding?!

                          1 Reply Last reply
                          1
                          • D Offline
                            D Offline
                            darrenleeleelee1
                            wrote on last edited by
                            #23

                            thanks guy I get my goal by the other way

                            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