Its because paintEvent clears the widget before painting, so everything previously painted is gone.
You should try using a QList of points to store every clicked point and paint all of them.