2013-02-23 14 views
0

QPainter를 사용하여 그려지는 QWidget에 도형이 있습니다. 특정 좌표에서 특정 타원을 삭제할 수있는 방법이 있습니까?qpainter를 사용하여 만든 qwidget의 타원 삭제

감사합니다.

+1

QGraphicsItem을 사용하면 더 쉽게 만들 수 있습니다. –

+0

QGraphics 프레임 워크를 사용하면 적어도 하나 이상의 위젯을 다시 작성해야 할 가능성이 있습니다. 질문 : 페인트 방법 로직을 변경하고 위젯의 다시 그리기를 예약하십시오. – divanov

답변

0

다음 번에 페인트하지 마십시오.

각 페인트 이벤트에서 paintEvent() 구현은 전체 위젯 또는 QPaintEvent에 지정된 rect/region을 "처음부터"그립니다. 따라서 각 paintEvent는 이전 페인트의 내용이 아닌 빈 캔버스에서 시작됩니다. 따라서, 지우고 싶다면 update()를 통해 다시 페인트를 시작한 다음 그려야 할 요소를 생략하면됩니다.

Vinod Paul은 다음과 같이 말합니다 : QGraphicsView는 이러한 많은 요소를 관리해야 할 경우를 대비하여 좋은 옵션 일 수 있습니다.

+0

QGraphicsView를 사용했지만 감사합니다. – abumusamq