title: Insert Image into QGridLayout and Draw on top of image in PyQt5
body: <p>I'm pretty new to PyQt and am trying to make an application with a QPixmap on the left, which can be drawn on, and a QTextEdit on the right (for a simple OCR GUI).
  I looked at:
  <a href="https://stackoverflow.com/questions/52616553/">PyQt5 Image and QGridlayout</a>
  but I couldn't connect it with the code below (I'm losing my hair with all the head scratching!!)
  When I try adapting the following code, what I get is a QMainWindow with the QPixmap as the background which can be drawn on with the mouse and a second occurance of the QPixmap in it's correct position, which can not be drawn on. Can someone tell me what I'm doing wrong? 
  Thank you very much!</p>
  
  <pre><code># https://stackoverflow.com/questions/51475306/
  import sys
  from PyQt5.QtCore import Qt, QPoint
  from PyQt5.QtWidgets import QMainWindow, QApplication,QGridLayout, QLabel, QWidget, QTextEdit
  from PyQt5.QtGui import QPixmap, QPainter, QPen
  
  class Menu(QMainWindow):
  
      def __init__(self):
          super().__init__()
          self.drawing = False
          self.lastPoint = QPoint()
          self.image = QPixmap("S3.png")
          self.setGeometry(100, 100, 500, 300)
          self.resize(self.image.width(), self.image.height()) 
          layout = QGridLayout()
  # Add a QTextEdit box 
          self.edit = QTextEdit()
          layout.addWidget(self.edit, 0, 0, 10, 20)
  # This:
  # https://stackoverflow.com/questions/52616553
  # indicates that a QPixmap must be put into a label to insert into a QGridLayout
          self.label = QLabel()
          self.label.setPixmap(self.image)
          layout.addWidget(self.label, 10, 20, 10, 20)
  
  # https://stackoverflow.com/questions/37304684/
          self.widget = QWidget()
          self.widget.setLayout(layout)
          self.setCentralWidget(self.widget)
  
          self.show()
  
      def paintEvent(self, event):
          painter = QPainter(self)
          painter.drawPixmap(self.rect(), self.image)
  
      def mousePressEvent(self, event):
          if event.button() == Qt.LeftButton:
              self.drawing = True
              self.lastPoint = event.pos()
              print(self.lastPoint)
  
      def mouseMoveEvent(self, event):
          if event.buttons() and Qt.LeftButton and self.drawing:
              painter = QPainter(self.image)
              painter.setPen(QPen(Qt.red, 3, Qt.SolidLine))
              painter.drawLine(self.lastPoint, event.pos())
              print(self.lastPoint,event.pos())
              self.lastPoint = event.pos()
              self.update()
  
       def mouseReleaseEvent(self, event):
           if event.button == Qt.LeftButton:
               self.drawing = False
  
  if __name__ == '__main__':
      app = QApplication(sys.argv)
      mainMenu = Menu()
      sys.exit(app.exec_())
  </code></pre>