How to erase point in PyQt5 QPainter?

I want to display the x and y coordinates from an accelerometer on an image. I used QPainter to set up the image and the drawPoint function to draw the coordinate at the given point. When the new coordinate is drawn, I need to erase the old coordinate so that there is only one at a time. In the code below, I called drawCoordinate twice, what happens is the target image ends up with 2 coordinate points at 0,0 and 0.5,0.5 but ideally I would be left with the last drawn coordinate.

This is my first question on here so I hope my format is correct! Let me know if I need to fix anything to help with clarity.

target image with 2 coordinates


class Target(QWidget):

def __init__(self):
    self.drawing = False
    self.image = QPixmap(r"Pictures\target_png_300.png")
    self.setGeometry(0, 0, 300, 300)
    self.resize(self.image.width(), self.image.height())

def paintEvent(self, event):
    painter = QPainter(self)
    painter.drawPixmap(self.rect(), self.image)

def paintCoordinate(self, x, y):
    painter = QPainter(self.image)
    r = QRect(-1, -1, 2, 2)
    pen = QPen(, 0.06, Qt.DotLine, Qt.RoundCap)
    painter.drawPoint(QPointF(x, y))

if name == 'main':

app = QApplication(sys.argv)
ex = Target()
ex.paintCoordinate(0, 0)
ex.paintCoordinate(0.5, 0.5)


Read more here:

Content Attribution

This content was originally published by ObtainNalgene at Recent Questions - Stack Overflow, and is syndicated here via their RSS feed. You can read the original post over there.

%d bloggers like this: