[PyQt5] QPainter를 이용한 다양한 그래픽

위젯은 자신을 다시 그릴때 paintEvent 함수를 호출합니다. 즉, 위젯에 무언가를 그리기에 가장 적당한 시점은 paintEvent입니다. 또한 여기에 그래픽 요소를 그리기 위해서 QPainter라는 API를 사용할 수 있습니다. 이 두가지를 조합하여 위젯을 상속받는 윈도우를 화면에 표시하고 이 윈도우에 원하는 그래픽 요소를 그리는 예를 살펴보겠습니다.

먼저 위젯을 상속받는 MyWindow라는 클래스를 하나 정의하는데, 이 클래스에는 앞서 언급한 paintEvent 함수를 재정의하고 있습니다.

위의 코드에서 20번째 줄에 그리기 함수를 호출함으로써 그 결과를 살펴볼 수 있는데요. 그리기 함수는 MyWindow 클래스의 맴버 함수로써 정의합니다. 먼저 텍스트를 그리는 함수입니다.

결과는 아래와 같습니다.

다음은 화면에 포인트를 찍는 함수입니다.

결과는 아래와 같습니다.

다음은 사각형을 그리는 함수입니다.

결과는 아래와 같습니다.

다음은 선을 그리는 함수입니다.

결과는 아래와 같습니다.

다음은 다양한 채움 스타일로 사각형을 그리는 함수입니다.

결과는 아래와 같습니다.

다음은 베이지 곡선을 그리는 함수입니다.

결과는 아래와 같습니다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다