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. Merge two pieces of code
Forum Updated to NodeBB v4.3 + New Features

Merge two pieces of code

Scheduled Pinned Locked Moved Unsolved Qt for Python
102 Posts 5 Posters 37.8k 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.
  • mrjjM mrjj

    @john_hobbyist
    Hi
    Nope, it don't work like that. the mouse function overrides that Qt must call and
    they cant be in another function.

    under
    class MyMplCanvas(mpl_qt.FigureCanvasQTAgg):
    def mousePressEvent(self, event):
    print("PRESS")

    and see if it types "PRESS" if you click on the "image"

    If it won't compile it means mpl_qt.FigureCanvasQTAgg is not a QWidget and
    its not really possible.

    J Offline
    J Offline
    john_hobbyist
    wrote on last edited by
    #25
    This post is deleted!
    1 Reply Last reply
    0
    • J john_hobbyist

      @mrjj I have just tried it. It prints "PRESS"!

      But again if I move the rubberband methods under MyMplCanvas and these:

          super().__init__(parent)
      
          self.rubberBand = None
          self.origin = None
      

      again the initial error...!!!

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

      @john_hobbyist

      Ok that's good news so it is a QWidget. Then there is hope :)
      It reacted to the mousepress!

      What error ?

      the set_canvas one ?

      J 1 Reply Last reply
      1
      • mrjjM mrjj

        @john_hobbyist

        Ok that's good news so it is a QWidget. Then there is hope :)
        It reacted to the mousepress!

        What error ?

        the set_canvas one ?

        J Offline
        J Offline
        john_hobbyist
        wrote on last edited by john_hobbyist
        #27

        @mrjj :-)

        Traceback (most recent call last):
          File "code.py", line 653, in <module>
            window = OrthoView()
          File "code.py", line 279, in __init__
            self.plotCanvas = MyMplCanvas(self)
          File "code.py", line 109, in __init__
            super().__init__(parent)
          File "/home/john/Desktop/test/venv/lib/python3.8/site-packages/matplotlib/backends/backend_qt5agg.py", line 21, in __init__
            super().__init__(figure=figure)
          File "/home/john/Desktop/test/venv/lib/python3.8/site-packages/matplotlib/backends/backend_qt5.py", line 214, in __init__
            super().__init__(figure=figure)
          File "/home/john/Desktop/test/venv/lib/python3.8/site-packages/matplotlib/backend_bases.py", line 1722, in __init__
            figure.set_canvas(self)
        AttributeError: 'OrthoView' object has no attribute 'set_canvas'
        
        mrjjM 1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #28

          You do realize that your OrthoView does not have such a method ? That its base class (QMainWindow) does not either ?

          Therefore since you are taking your code from another project, you might want to check the code of said project for that method.

          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
          2
          • J john_hobbyist

            @mrjj :-)

            Traceback (most recent call last):
              File "code.py", line 653, in <module>
                window = OrthoView()
              File "code.py", line 279, in __init__
                self.plotCanvas = MyMplCanvas(self)
              File "code.py", line 109, in __init__
                super().__init__(parent)
              File "/home/john/Desktop/test/venv/lib/python3.8/site-packages/matplotlib/backends/backend_qt5agg.py", line 21, in __init__
                super().__init__(figure=figure)
              File "/home/john/Desktop/test/venv/lib/python3.8/site-packages/matplotlib/backends/backend_qt5.py", line 214, in __init__
                super().__init__(figure=figure)
              File "/home/john/Desktop/test/venv/lib/python3.8/site-packages/matplotlib/backend_bases.py", line 1722, in __init__
                figure.set_canvas(self)
            AttributeError: 'OrthoView' object has no attribute 'set_canvas'
            
            mrjjM Offline
            mrjjM Offline
            mrjj
            Lifetime Qt Champion
            wrote on last edited by
            #29

            @john_hobbyist said in Merge two pieces of code:

            set_canvas

            But this is not related to the RubberBand thing. ?

            if i look in the ORG project
            https://github.com/kklmn/OrthoView/blob/master/OrthoView.py

            there is no such method?
            So did you add it or where does it come from ?

            1 Reply Last reply
            1
            • J Offline
              J Offline
              john_hobbyist
              wrote on last edited by john_hobbyist
              #30

              @SGaist, @mrjj : I have posted the code previously. But again I got the code form github repository and I inserted inside the code for rubberband (all those I have posted in my initial post) I execute the python code and again the same error.... Any ideas??

              mrjjM 1 Reply Last reply
              0
              • J john_hobbyist

                @SGaist, @mrjj : I have posted the code previously. But again I got the code form github repository and I inserted inside the code for rubberband (all those I have posted in my initial post) I execute the python code and again the same error.... Any ideas??

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

                @john_hobbyist
                Hi
                the
                'MyMplCanvas' object has no attribute 'rubberBand'
                or the
                object has no attribute 'set_canvas'

                1 Reply Last reply
                1
                • J Offline
                  J Offline
                  john_hobbyist
                  wrote on last edited by
                  #32

                  Hi, sorry, what should I do?

                  mrjjM 1 Reply Last reply
                  0
                  • J john_hobbyist

                    Hi, sorry, what should I do?

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

                    @john_hobbyist

                    hi
                    fix the error.
                    Tell what line number and what it says.

                    J 1 Reply Last reply
                    1
                    • mrjjM mrjj

                      @john_hobbyist

                      hi
                      fix the error.
                      Tell what line number and what it says.

                      J Offline
                      J Offline
                      john_hobbyist
                      wrote on last edited by
                      #34

                      @mrjj Hi, for the posted source code above...this is the error:

                      Traceback (most recent call last):
                        File "code.py", line 513, in <module>
                          window = OrthoView()
                        File "code.py", line 279, in __init__
                          self.plotCanvas = MyMplCanvas(self)
                        File "code.py", line 113, in __init__
                          super().__init__(parent)
                        File "/home/john/Desktop/test/venv/lib/python3.8/site-packages/matplotlib/backends/backend_qt5agg.py", line 21, in __init__
                          super().__init__(figure=figure)
                        File "/home/john/Desktop/test/venv/lib/python3.8/site-packages/matplotlib/backends/backend_qt5.py", line 214, in __init__
                          super().__init__(figure=figure)
                        File "/home/john/Desktop/test/venv/lib/python3.8/site-packages/matplotlib/backend_bases.py", line 1722, in __init__
                          figure.set_canvas(self)
                      AttributeError: 'OrthoView' object has no attribute 'set_canvas'
                      
                      
                      mrjjM 1 Reply Last reply
                      0
                      • J john_hobbyist

                        @mrjj Hi, for the posted source code above...this is the error:

                        Traceback (most recent call last):
                          File "code.py", line 513, in <module>
                            window = OrthoView()
                          File "code.py", line 279, in __init__
                            self.plotCanvas = MyMplCanvas(self)
                          File "code.py", line 113, in __init__
                            super().__init__(parent)
                          File "/home/john/Desktop/test/venv/lib/python3.8/site-packages/matplotlib/backends/backend_qt5agg.py", line 21, in __init__
                            super().__init__(figure=figure)
                          File "/home/john/Desktop/test/venv/lib/python3.8/site-packages/matplotlib/backends/backend_qt5.py", line 214, in __init__
                            super().__init__(figure=figure)
                          File "/home/john/Desktop/test/venv/lib/python3.8/site-packages/matplotlib/backend_bases.py", line 1722, in __init__
                            figure.set_canvas(self)
                        AttributeError: 'OrthoView' object has no attribute 'set_canvas'
                        
                        
                        mrjjM Offline
                        mrjjM Offline
                        mrjj
                        Lifetime Qt Champion
                        wrote on last edited by
                        #35

                        Hi

                        Ok so it has NOTHING to do with the rubberband at all.
                        Even before you try to insert that, the app was not working.

                        So it complains about
                        figure.set_canvas(self)

                        So perhaps you didnt copy the figure class etc ?

                        1 Reply Last reply
                        2
                        • J Offline
                          J Offline
                          john_hobbyist
                          wrote on last edited by
                          #36

                          @mrjj I have copied everything from the github repository. The only small modification I did in rubberband code is that I changed this part:

                          import sys
                          
                          from PySide2.QtCore import QRect
                          from PySide2.QtCore import QSize
                          from PySide2.QtWidgets import QWidget
                          from PySide2.QtWidgets import QRubberBand
                          from PySide2.QtWidgets import QApplication
                          

                          to this one:

                          import rubberband
                          import sys
                          
                          
                          from PyQt5 import QtWidgets
                          from PyQt5 import QtCore 
                          
                          
                          from PyQt5.QtWidgets import * 
                          from PyQt5 import QtCore, QtGui
                          from PyQt5.QtGui import * 
                          from PyQt5.QtCore import * 
                          

                          Could this be the source of the strange errors?

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

                            Rather than just copying it, did you try to run the application from the repo as is ?

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

                            J 1 Reply Last reply
                            2
                            • SGaistS SGaist

                              Rather than just copying it, did you try to run the application from the repo as is ?

                              J Offline
                              J Offline
                              john_hobbyist
                              wrote on last edited by
                              #38

                              @SGaist Hi,yes, it runs without any problems!

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

                                Then compare it to your version and see where the difference lies.

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

                                J 1 Reply Last reply
                                2
                                • SGaistS SGaist

                                  Then compare it to your version and see where the difference lies.

                                  J Offline
                                  J Offline
                                  john_hobbyist
                                  wrote on last edited by
                                  #40

                                  @SGaist : I have tried any possible solution! Is there any other way to select an area on image apart from rubberband?

                                  JonBJ 1 Reply Last reply
                                  0
                                  • J john_hobbyist

                                    @SGaist : I have tried any possible solution! Is there any other way to select an area on image apart from rubberband?

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

                                    @john_hobbyist
                                    I don't think so, rubber band is the right way to do it. Even if there were another way, like just clicking, I presume you would face the same issues getting it right as you are now for rubber band.

                                    1 Reply Last reply
                                    1
                                    • J Offline
                                      J Offline
                                      john_hobbyist
                                      wrote on last edited by
                                      #42

                                      I try for many hours to incorporate another code in the code from the github repository. I have fixed some errors (because it was written basically for PyQt4). But I cannot fix this error:

                                      Traceback (most recent call last):
                                        File "code_2.py", line 333, in <module>
                                          screen_pixmap = QtGui.QPixmap.grabWidget(app.desktop()) 
                                      NameError: name 'QtGui' is not defined
                                      Segmentation fault (core dumped)
                                      
                                      

                                      I change the QtWidgets to QtGui and I get this error:

                                      Traceback (most recent call last):
                                      File "code_2.py", line 333, in <module>
                                        screen_pixmap = QtWidgets.QPixmap.grabWidget(app.desktop()) 
                                      AttributeError: module 'PyQt5.QtWidgets' has no attribute 'QPixmap'
                                      Segmentation fault (core dumped)
                                      
                                      

                                      Any ideas??

                                      mrjjM JonBJ 2 Replies Last reply
                                      0
                                      • J john_hobbyist

                                        I try for many hours to incorporate another code in the code from the github repository. I have fixed some errors (because it was written basically for PyQt4). But I cannot fix this error:

                                        Traceback (most recent call last):
                                          File "code_2.py", line 333, in <module>
                                            screen_pixmap = QtGui.QPixmap.grabWidget(app.desktop()) 
                                        NameError: name 'QtGui' is not defined
                                        Segmentation fault (core dumped)
                                        
                                        

                                        I change the QtWidgets to QtGui and I get this error:

                                        Traceback (most recent call last):
                                        File "code_2.py", line 333, in <module>
                                          screen_pixmap = QtWidgets.QPixmap.grabWidget(app.desktop()) 
                                        AttributeError: module 'PyQt5.QtWidgets' has no attribute 'QPixmap'
                                        Segmentation fault (core dumped)
                                        
                                        

                                        Any ideas??

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

                                        Hi
                                        Are you using Qtpy5 ?

                                        I think its
                                        from PyQt5.QtGui import QPixmap

                                        https://www.pythonguis.com/faq/adding-images-to-pyqt5-applications/

                                        J 1 Reply Last reply
                                        1
                                        • mrjjM mrjj

                                          Hi
                                          Are you using Qtpy5 ?

                                          I think its
                                          from PyQt5.QtGui import QPixmap

                                          https://www.pythonguis.com/faq/adding-images-to-pyqt5-applications/

                                          J Offline
                                          J Offline
                                          john_hobbyist
                                          wrote on last edited by
                                          #44

                                          @mrjj I have just tried what you suggest... Nothing changed!

                                          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