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.
def __init__(self): super().__init__() 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()) self.show() 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) painter.setWindow(r) pen = QPen(Qt.black, 0.06, Qt.DotLine, Qt.RoundCap) painter.setPen(pen) painter.drawPoint(QPointF(x, y))
if name == 'main':
app = QApplication(sys.argv) ex = Target() ex.paintCoordinate(0, 0) ex.paintCoordinate(0.5, 0.5) sys.exit(app.exec_())