QLabel이있는 QLayout이있는 QWidget이 있습니다. 레이블에 QPixmap을 설정했습니다. 사용자가 이미지를 클릭 할 때마다 지점을 그려야합니다. mouseReleaseEvent (작동)와 paintEvent (포인트는 그려지지 않음)를 정의했습니다. 나는 비슷한 질문을 모두 읽었으며 어떤 해결책도 나를 위해 일하지 않았다. 어떤 도움이 필요합니까? 내 관련 코드 :QWidget (pyqt5)에서 QPixmap의 드로잉 포인트
class ImageScroller(QtWidgets.QWidget):
def __init__(self, img):
QtWidgets.QWidget.__init__(self)
main_layout = QtWidgets.QVBoxLayout()
self._image_label = QtWidgets.QLabel()
self._set_image(img)
main_layout.addWidget(self._image_label)
main_layout.addStretch()
self.setLayout(main_layout)
def _set_image(self, img):
img = qimage2ndarray.array2qimage(img)
qimg = QtGui.QPixmap.fromImage(img)
self._img_pixmap = QtGui.QPixmap(qimg)
self._image_label.show()
def paintEvent(self, paint_event):
painter = QtGui.QPainter(self)
painter.begin(self)
painter.setPen(QtGui.QPen(QtCore.Qt.red))
pen = QtGui.QPen()
pen.setWidth(20)
painter.setPen(pen)
painter.setRenderHint(QtGui.QPainter.Antialiasing, True)
painter.drawPoint(300,300)
painter.drawLine(100, 100, 400, 400)
for pos in self.chosen_points:
painter.drawPoint(pos)
painter.end()
def mouseReleaseEvent(self, cursor_event):
self.chosen_points.append(QtGui.QCursor().pos())
self.update()
은 어디'mouseReleaseEvent' 구현입니까? 'update()'메서드를 호출 했습니까? – eyllanesc
예. mouseReleaseEvent 구현을 사용하여 게시물을 편집했습니다. –