이 페이지에서

그리기 및 채우기

그리기

QPainter 는 GUI 프로그램에서 필요로 하는 대부분의 그리기 작업을 수행하기 위해 고도로 최적화된 함수들을 제공합니다. 이 클래스는 간단한 그래픽 기본 도형( QPoint, QLine, QRect, QRegion 및 QPolygon 클래스로 표현됨)부터 벡터 경로와 같은 복잡한 도형에 이르기까지 모든 것을 그릴 수 있습니다. Qt에서 벡터 경로는 QPainterPath 클래스로 표현됩니다. QPainterPath 는 그리기 작업을 위한 컨테이너를 제공하여 그래픽 도형을 구성하고 재사용할 수 있게 해줍니다.

Qt 로고

QPainterPath

페인터 경로는 선과 곡선으로 구성된 객체입니다. 예를 들어, 사각형은 선으로 구성되고 타원은 곡선으로 구성됩니다.

일반적인 그리기 작업에 비해 페인터 경로의 주요 장점은 복잡한 도형을 한 번만 생성하면 되며, 이후에는 QPainter::drawPath() 함수를 호출하는 것만으로 여러 번 그릴 수 있다는 점입니다.

QPainterPath 객체는 채우기, 윤곽 그리기 및 클리핑에 사용할 수 있습니다. 주어진 페인터 경로에 대해 채울 수 있는 윤곽선을 생성하려면 QPainterPathStroker 클래스를 사용하십시오.

선과 윤곽선은 QPen 클래스를 사용하여 그려집니다. 펜은 스타일(즉, 선 유형), 너비, 브러시, 끝점 그리기 방식(cap-style), 그리고 두 연결된 선 사이의 접합부 그리기 방식(join-style)으로 정의됩니다. 펜의 브러시는 펜으로 생성된 획을 채우는 데 사용되는 QBrush 객체이며, 즉 QBrush 클래스가 채우기 패턴을 정의합니다.

QPainter 또한 정렬된 텍스트와 픽스맵을 그릴 수도 있습니다.

텍스트를 그릴 때, 글꼴은 QFont 클래스를 사용하여 지정됩니다. Qt는 지정된 속성을 가진 글꼴을 사용하며, 일치하는 글꼴이 없는 경우 Qt는 가장 유사한 설치된 글꼴을 사용합니다. 실제로 사용되는 글꼴의 속성은 QFontInfo 클래스를 사용하여 가져올 수 있습니다. 또한, QFontMetrics 클래스는 글꼴 치수를 제공하며, QFontDatabase 클래스는 기본 창 시스템에서 사용 가능한 글꼴에 대한 정보를 제공합니다.

일반적으로 ` QPainter `는 “자연” 좌표계에서 그리기를 수행하지만, ` QTransform ` 클래스를 사용하여 뷰 변환 및 월드 변환을 수행할 수 있습니다. 자세한 내용은 ‘좌표계’를 참조하십시오. 여기에는 렌더링 과정, 즉 논리적 표현과 렌더링된 픽셀 간의 관계, 그리고 앤티앨리어싱 렌더링의 이점에 대해서도 설명되어 있습니다.

앤티앨리어싱 처리

그리기 작업 시 픽셀 렌더링은 ` QPainter::Antialiasing ` 렌더링 힌트에 의해 제어됩니다. ` QPainter::RenderHint ` 열거형은 ` QPainter `에 전달할 플래그를 지정하는 데 사용되며, 이 플래그는 특정 엔진에 따라 적용되거나 무시될 수 있습니다.

QPainter::Antialiasing 값은 엔진이 가능한 경우 프리미티브의 가장자리에 앤티앨리어싱을 적용해야 함을 나타냅니다. 즉, 서로 다른 색상 농도를 사용하여 가장자리를 부드럽게 처리해야 합니다.

앤티앨리어싱을 적용하여 렌더링된 그림을 보여주는 스크린샷

채우기

도형은 QBrush 클래스를 사용하여 채워집니다. 브러시는 색상과 스타일(즉, 채우기 패턴)로 정의됩니다.

Qt의 모든 색상은 RGB, HSV 및 CMYK 색상 모델을 지원하는 ` QColor ` 클래스로 표현됩니다. ` QColor `는 알파 블렌딩을 이용한 윤곽선 및 채우기(투명도 효과 지정)도 지원하며, 이 클래스는 플랫폼 및 기기에 독립적입니다. 자세한 내용은 ` QColor ` 클래스 문서를 참조하십시오.

사용 가능한 채우기 패턴은 Qt::BrushStyle 열거형으로 정의됩니다. 여기에는 단색부터 매우 드문드문한 패턴에 이르는 기본 패턴, 다양한 선 조합, 그라데이션 채우기 및 텍스처가 포함됩니다. Qt는 사용자 정의 그라데이션 채우기를 정의하기 위해 QGradient 클래스를 제공하며, 텍스처 패턴은 QPixmap 클래스를 사용하여 지정합니다.

그라데이션 예시 스크린샷

QGradient

QGradient 클래스는 QBrush 와 함께 사용되어 그라데이션 채우기를 지정합니다.

그라데이션을 사용할 수 있는 세 가지 지원 방식을 보여주는 일러스트레이션

Qt는 현재 세 가지 유형의 그라데이션 채우기를 지원합니다. 선형 그라데이션은 시작점과 끝점 사이의 색상을 보간하고, 방사형 그라데이션은 초점과 이를 둘러싼 원의 끝점 사이의 색상을 보간하며, 원뿔형 그라데이션은 중심점 주변의 색상을 보간합니다.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.