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. Draw a rectangle over an image
Forum Updated to NodeBB v4.3 + New Features

Draw a rectangle over an image

Scheduled Pinned Locked Moved Solved Qt for Python
27 Posts 5 Posters 7.4k Views 1 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.
  • J john_hobbyist

    I have built it in python. I will try to translate the above code (I think it is C++ ) to python and respond to you if it works...Thanks!

    KroMignonK Offline
    KroMignonK Offline
    KroMignon
    wrote on last edited by
    #4

    @john_hobbyist said in Draw a rectangle over an image:

    I have built it in python. I will try to translate the above code (I think it is C++ ) to python and respond to you if it works...Thanks!

    This no C++ code, it is QML!!!

    It is an old maxim of mine that when you have excluded the impossible, whatever remains, however improbable, must be the truth. (Sherlock Holmes)

    1 Reply Last reply
    1
    • MarkkyboyM Offline
      MarkkyboyM Offline
      Markkyboy
      wrote on last edited by
      #5

      Code updated @john_hobbyist - sorry, didn't read the part about python!....Oops!, speed reading again!

      Don't just sit there standing around, pick up a shovel and sweep up!

      I live by the sea, not in it.

      J 1 Reply Last reply
      1
      • MarkkyboyM Markkyboy

        Code updated @john_hobbyist - sorry, didn't read the part about python!....Oops!, speed reading again!

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

        @Markkyboy Sorry I do not know QML, moreover I have posted the question under "python" category...Thanks for your time though...

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

          Hi,

          From memory: use a green QPen and a transparent QBrush.

          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 Offline
            J Offline
            john_hobbyist
            wrote on last edited by john_hobbyist
            #8

            This is my try (source: https://stackoverflow.com/questions/61034583/drawing-a-circle-on-a-qwidget-python-gui and https://codeloop.org/pyqt5-drawing-rectangle-with-qpainter-class/). I cannot display the image and then above the image the green transparent rectangle...It depicts only the green rectangle and nothing behind...Why?

            from PyQt5 import QtGui
            import sys
            from PyQt5.QtWidgets import *
            from PyQt5.QtCore import *
            from PyQt5.QtGui import *
             
            class Canvas(QWidget): 
                def __init__(self, photo, *args, **kwargs): 
                    super().__init__(*args, **kwargs) 
                    
                    self.image = QImage(photo)
                    self.setFixedSize(self.image.width(), self.image.height())
                    self.pressed = self.moving = False
                    self.revisions = []
             
                    self.title = "PyQt5 Drawing Rectangle"
                    self.top = 100
                    self.left = 100
                    self.width = 680
                    self.height = 500
             
                    self.InitWindow()
             
                def InitWindow(self):
                    self.setWindowIcon(QtGui.QIcon("icon.png"))
                    self.setWindowTitle(self.title)
                    self.setGeometry(self.top, self.left, self.width, self.height)
                    self.show()
             
                def paintEvent(self, e):
                    painter = QPainter(self)
                    painter.setPen(QPen(Qt.green, 5, Qt.SolidLine))
                    painter.setBrush(QBrush(Qt.transparent))
                    painter.drawRect(100, 150, 400,200)
            
            class MainWindow(QMainWindow):
            
                def __init__(self):
                    super().__init__()
                    w = QWidget()
                    self.setCentralWidget(w)
                    canvas = Canvas('image3.png') 
                    grid = QGridLayout(w)
                    grid.addWidget(canvas)
            
            if __name__ == '__main__':
                app = QApplication(sys.argv)
                gui = MainWindow()
                gui.show()
                sys.exit(app.exec_())
            
            1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #9

              Because your are doing nothing with the image beside loading it and you are painting your rectangle in your widget and not on your image.

              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
              1
              • SGaistS SGaist

                Because your are doing nothing with the image beside loading it and you are painting your rectangle in your widget and not on your image.

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

                @SGaist Ok, what to add/fix in the code? Thanks...

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

                  Paint the image before the rectangle.

                  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
                  1
                  • SGaistS SGaist

                    Paint the image before the rectangle.

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

                    I have added this command:

                    painter.drawImage(photo)
                    

                    under:

                    painter = QPainter(self)
                    

                    Nothing works...I don't see neither the photo, nor the rectangle... Any idea?

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

                      I did some other tests, nothing...

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

                        Except that photo is passed only in your __init__ method.

                        Please provide your code rather than lines without context stating that it does not work.

                        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
                        • J Offline
                          J Offline
                          john_hobbyist
                          wrote on last edited by john_hobbyist
                          #15

                          @SGaist Yes, sorry! Here it does not show anything... (source: https://stackoverflow.com/questions/61034583/drawing-a-circle-on-a-qwidget-python-gui and https://codeloop.org/pyqt5-drawing-rectangle-with-qpainter-class/)

                          from PyQt5 import QtGui
                          import sys
                          from PyQt5.QtWidgets import *
                          from PyQt5.QtCore import *
                          from PyQt5.QtGui import *
                           
                          class Canvas(QWidget): 
                              def __init__(self, photo, *args, **kwargs): 
                                  super().__init__(*args, **kwargs) 
                                  
                                  self.image = QImage(photo)
                                  self.setFixedSize(self.image.width(), self.image.height())
                                  self.pressed = self.moving = False
                                  self.revisions = []
                           
                                  self.title = "PyQt5 Drawing Rectangle"
                                  self.top = 100
                                  self.left = 100
                                  self.width = 680
                                  self.height = 500
                           
                                  self.InitWindow()
                           
                              def InitWindow(self):
                                  self.setWindowIcon(QtGui.QIcon("icon.png"))
                                  self.setWindowTitle(self.title)
                                  self.setGeometry(self.top, self.left, self.width, self.height)
                                  self.show()
                          
                              def paintEvent(self, e):
                                  painter = QPainter(self)
                                  painter.drawImage(photo)
                                  painter.setPen(QPen(Qt.green, 5, Qt.SolidLine))
                                  painter.setBrush(QBrush(Qt.transparent))
                                  painter.drawRect(100, 150, 400,200)
                          
                          class MainWindow(QMainWindow):
                          
                              def __init__(self):
                                  super().__init__()
                                  w = QWidget()
                                  self.setCentralWidget(w)
                                  canvas = Canvas('image3.png') 
                                  grid = QGridLayout(w)
                                  grid.addWidget(canvas)
                          
                          if __name__ == '__main__':
                              app = QApplication(sys.argv)
                              gui = MainWindow()
                              gui.show()
                              sys.exit(app.exec_())
                          
                          1 Reply Last reply
                          0
                          • SGaistS Offline
                            SGaistS Offline
                            SGaist
                            Lifetime Qt Champion
                            wrote on last edited by
                            #16

                            And that code runs without triggering an exception ?
                            "photo" is unknown in your paintEvent. You should draw "self.image".

                            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
                            0
                            • SGaistS SGaist

                              And that code runs without triggering an exception ?
                              "photo" is unknown in your paintEvent. You should draw "self.image".

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

                              @SGaist If you mean: "painter.drawImage(self.image)" I see neither the image nor the rectangle and many errors...

                              jsulmJ 1 Reply Last reply
                              0
                              • J john_hobbyist

                                @SGaist If you mean: "painter.drawImage(self.image)" I see neither the image nor the rectangle and many errors...

                                jsulmJ Online
                                jsulmJ Online
                                jsulm
                                Lifetime Qt Champion
                                wrote on last edited by
                                #18

                                @john_hobbyist said in Draw a rectangle over an image:

                                many errors

                                Would be nice if you would let us know what errors...

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

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

                                  @jsulm Yes, of course! The code is this (for source see my previous messages...):

                                  from PyQt5 import QtGui
                                  import sys
                                  from PyQt5.QtWidgets import *
                                  from PyQt5.QtCore import *
                                  from PyQt5.QtGui import *
                                   
                                  class Canvas(QWidget): 
                                      def __init__(self, photo, *args, **kwargs): 
                                          super().__init__(*args, **kwargs) 
                                          
                                          self.image = QImage(photo)
                                          self.setFixedSize(self.image.width(), self.image.height())
                                          self.pressed = self.moving = False
                                          self.revisions = []
                                   
                                          self.title = "PyQt5 Drawing Rectangle"
                                          self.top = 100
                                          self.left = 100
                                          self.width = 680
                                          self.height = 500
                                   
                                          self.InitWindow()
                                   
                                      def InitWindow(self):
                                          self.setWindowIcon(QtGui.QIcon("icon.png"))
                                          self.setWindowTitle(self.title)
                                          self.setGeometry(self.top, self.left, self.width, self.height)
                                          self.show()
                                  
                                      def paintEvent(self, e):
                                          painter = QPainter(self)
                                          painter.drawImage(self.image)
                                          painter.setPen(QPen(Qt.green, 5, Qt.SolidLine))
                                          painter.setBrush(QBrush(Qt.transparent))
                                          painter.drawRect(100, 150, 400,200)
                                  
                                  class MainWindow(QMainWindow):
                                  
                                      def __init__(self):
                                          super().__init__()
                                          w = QWidget()
                                          self.setCentralWidget(w)
                                          canvas = Canvas('image3.png') 
                                          grid = QGridLayout(w)
                                          grid.addWidget(canvas)
                                  
                                  if __name__ == '__main__':
                                      app = QApplication(sys.argv)
                                      gui = MainWindow()
                                      gui.show()
                                      sys.exit(app.exec_())
                                  

                                  The errors are these:

                                  Traceback (most recent call last):
                                    File "draw_fixed_rectangle_with_image.py", line 32, in paintEvent
                                      painter.drawImage(self.image)
                                  TypeError: arguments did not match any overloaded call:
                                    drawImage(self, QRectF, QImage): argument 1 has unexpected type 'QImage'
                                    drawImage(self, QRect, QImage): argument 1 has unexpected type 'QImage'
                                    drawImage(self, Union[QPointF, QPoint], QImage): argument 1 has unexpected type 'QImage'
                                    drawImage(self, QPoint, QImage): argument 1 has unexpected type 'QImage'
                                    drawImage(self, int, int, QImage, sx: int = 0, sy: int = 0, sw: int = -1, sh: int = -1, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                    drawImage(self, QRectF, QImage, QRectF, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                    drawImage(self, QRect, QImage, QRect, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                    drawImage(self, Union[QPointF, QPoint], QImage, QRectF, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                    drawImage(self, QPoint, QImage, QRect, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                  QBackingStore::endPaint() called with active painter; did you forget to destroy it or call QPainter::end() on it?
                                  Traceback (most recent call last):
                                    File "draw_fixed_rectangle_with_image.py", line 32, in paintEvent
                                      painter.drawImage(self.image)
                                  TypeError: arguments did not match any overloaded call:
                                    drawImage(self, QRectF, QImage): argument 1 has unexpected type 'QImage'
                                    drawImage(self, QRect, QImage): argument 1 has unexpected type 'QImage'
                                    drawImage(self, Union[QPointF, QPoint], QImage): argument 1 has unexpected type 'QImage'
                                    drawImage(self, QPoint, QImage): argument 1 has unexpected type 'QImage'
                                    drawImage(self, int, int, QImage, sx: int = 0, sy: int = 0, sw: int = -1, sh: int = -1, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                    drawImage(self, QRectF, QImage, QRectF, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                    drawImage(self, QRect, QImage, QRect, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                    drawImage(self, Union[QPointF, QPoint], QImage, QRectF, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                    drawImage(self, QPoint, QImage, QRect, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                  Traceback (most recent call last):
                                    File "draw_fixed_rectangle_with_image.py", line 32, in paintEvent
                                      painter.drawImage(self.image)
                                  TypeError: arguments did not match any overloaded call:
                                    drawImage(self, QRectF, QImage): argument 1 has unexpected type 'QImage'
                                    drawImage(self, QRect, QImage): argument 1 has unexpected type 'QImage'
                                    drawImage(self, Union[QPointF, QPoint], QImage): argument 1 has unexpected type 'QImage'
                                    drawImage(self, QPoint, QImage): argument 1 has unexpected type 'QImage'
                                    drawImage(self, int, int, QImage, sx: int = 0, sy: int = 0, sw: int = -1, sh: int = -1, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                    drawImage(self, QRectF, QImage, QRectF, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                    drawImage(self, QRect, QImage, QRect, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                    drawImage(self, Union[QPointF, QPoint], QImage, QRectF, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                    drawImage(self, QPoint, QImage, QRect, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                  QBackingStore::endPaint() called with active painter; did you forget to destroy it or call QPainter::end() on it?
                                  QPaintDevice: Cannot destroy paint device that is being painted
                                  
                                  
                                  jsulmJ 1 Reply Last reply
                                  0
                                  • J john_hobbyist

                                    @jsulm Yes, of course! The code is this (for source see my previous messages...):

                                    from PyQt5 import QtGui
                                    import sys
                                    from PyQt5.QtWidgets import *
                                    from PyQt5.QtCore import *
                                    from PyQt5.QtGui import *
                                     
                                    class Canvas(QWidget): 
                                        def __init__(self, photo, *args, **kwargs): 
                                            super().__init__(*args, **kwargs) 
                                            
                                            self.image = QImage(photo)
                                            self.setFixedSize(self.image.width(), self.image.height())
                                            self.pressed = self.moving = False
                                            self.revisions = []
                                     
                                            self.title = "PyQt5 Drawing Rectangle"
                                            self.top = 100
                                            self.left = 100
                                            self.width = 680
                                            self.height = 500
                                     
                                            self.InitWindow()
                                     
                                        def InitWindow(self):
                                            self.setWindowIcon(QtGui.QIcon("icon.png"))
                                            self.setWindowTitle(self.title)
                                            self.setGeometry(self.top, self.left, self.width, self.height)
                                            self.show()
                                    
                                        def paintEvent(self, e):
                                            painter = QPainter(self)
                                            painter.drawImage(self.image)
                                            painter.setPen(QPen(Qt.green, 5, Qt.SolidLine))
                                            painter.setBrush(QBrush(Qt.transparent))
                                            painter.drawRect(100, 150, 400,200)
                                    
                                    class MainWindow(QMainWindow):
                                    
                                        def __init__(self):
                                            super().__init__()
                                            w = QWidget()
                                            self.setCentralWidget(w)
                                            canvas = Canvas('image3.png') 
                                            grid = QGridLayout(w)
                                            grid.addWidget(canvas)
                                    
                                    if __name__ == '__main__':
                                        app = QApplication(sys.argv)
                                        gui = MainWindow()
                                        gui.show()
                                        sys.exit(app.exec_())
                                    

                                    The errors are these:

                                    Traceback (most recent call last):
                                      File "draw_fixed_rectangle_with_image.py", line 32, in paintEvent
                                        painter.drawImage(self.image)
                                    TypeError: arguments did not match any overloaded call:
                                      drawImage(self, QRectF, QImage): argument 1 has unexpected type 'QImage'
                                      drawImage(self, QRect, QImage): argument 1 has unexpected type 'QImage'
                                      drawImage(self, Union[QPointF, QPoint], QImage): argument 1 has unexpected type 'QImage'
                                      drawImage(self, QPoint, QImage): argument 1 has unexpected type 'QImage'
                                      drawImage(self, int, int, QImage, sx: int = 0, sy: int = 0, sw: int = -1, sh: int = -1, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                      drawImage(self, QRectF, QImage, QRectF, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                      drawImage(self, QRect, QImage, QRect, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                      drawImage(self, Union[QPointF, QPoint], QImage, QRectF, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                      drawImage(self, QPoint, QImage, QRect, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                    QBackingStore::endPaint() called with active painter; did you forget to destroy it or call QPainter::end() on it?
                                    Traceback (most recent call last):
                                      File "draw_fixed_rectangle_with_image.py", line 32, in paintEvent
                                        painter.drawImage(self.image)
                                    TypeError: arguments did not match any overloaded call:
                                      drawImage(self, QRectF, QImage): argument 1 has unexpected type 'QImage'
                                      drawImage(self, QRect, QImage): argument 1 has unexpected type 'QImage'
                                      drawImage(self, Union[QPointF, QPoint], QImage): argument 1 has unexpected type 'QImage'
                                      drawImage(self, QPoint, QImage): argument 1 has unexpected type 'QImage'
                                      drawImage(self, int, int, QImage, sx: int = 0, sy: int = 0, sw: int = -1, sh: int = -1, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                      drawImage(self, QRectF, QImage, QRectF, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                      drawImage(self, QRect, QImage, QRect, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                      drawImage(self, Union[QPointF, QPoint], QImage, QRectF, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                      drawImage(self, QPoint, QImage, QRect, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                    Traceback (most recent call last):
                                      File "draw_fixed_rectangle_with_image.py", line 32, in paintEvent
                                        painter.drawImage(self.image)
                                    TypeError: arguments did not match any overloaded call:
                                      drawImage(self, QRectF, QImage): argument 1 has unexpected type 'QImage'
                                      drawImage(self, QRect, QImage): argument 1 has unexpected type 'QImage'
                                      drawImage(self, Union[QPointF, QPoint], QImage): argument 1 has unexpected type 'QImage'
                                      drawImage(self, QPoint, QImage): argument 1 has unexpected type 'QImage'
                                      drawImage(self, int, int, QImage, sx: int = 0, sy: int = 0, sw: int = -1, sh: int = -1, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                      drawImage(self, QRectF, QImage, QRectF, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                      drawImage(self, QRect, QImage, QRect, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                      drawImage(self, Union[QPointF, QPoint], QImage, QRectF, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                      drawImage(self, QPoint, QImage, QRect, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.ImageConversionFlag.AutoColor): argument 1 has unexpected type 'QImage'
                                    QBackingStore::endPaint() called with active painter; did you forget to destroy it or call QPainter::end() on it?
                                    QPaintDevice: Cannot destroy paint device that is being painted
                                    
                                    
                                    jsulmJ Online
                                    jsulmJ Online
                                    jsulm
                                    Lifetime Qt Champion
                                    wrote on last edited by jsulm
                                    #20

                                    @john_hobbyist Please take a look at documentation: https://doc.qt.io/qt-5/qpainter.html
                                    What are drawImage() parameters? And what do you pass to it? It is quite apparent what you are doing wrong even from the error message itself:

                                    drawImage(self, QRectF, QImage): argument 1 has unexpected type 'QImage'
                                    

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

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

                                      The error is pretty explicit. There's no overload of drawImage that takes only a QImage as parameter. It's always the second one.

                                      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
                                      1
                                      • J Offline
                                        J Offline
                                        john_hobbyist
                                        wrote on last edited by
                                        #22

                                        Thank you all for your time and your significant comments! I mark it as "Solved!"

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

                                          Just a small question, in case I want to depict the rectangle in an image displayed in this application: https://github.com/Axel-Erfurt/OrthoViewLite/blob/main/OrthoViewLite.py how can I achieve that? Where should I place the above code?

                                          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