그리기 및 채우기

그리기

QPainter 는 GUI 프로그램에 필요한 대부분의 그리기 작업을 수행할 수 있는 고도로 최적화된 기능을 제공합니다. 간단한 그래픽 프리미티브( QPoint, QLine, QRect, QRegion, QPolygon 클래스로 표현되는)부터 벡터 경로와 같은 복잡한 도형에 이르기까지 모든 것을 그릴 수 있습니다. Qt에서 벡터 경로는 QPainterPath 클래스로 표현됩니다. QPainterPath 은 그래픽 모양을 만들고 재사용할 수 있는 페인팅 연산을 위한 컨테이너를 제공합니다.

QPainterPath

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

일반 그리기 작업에 비해 페인터 경로의 가장 큰 장점은 복잡한 도형을 한 번만 만들면 QPainter::drawPath() 함수만 호출하여 여러 번 그릴 수 있다는 것입니다.

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

선과 윤곽선은 QPen 클래스를 사용하여 그립니다. 펜은 스타일(즉, 선 유형), 너비, 브러시, 끝점을 그리는 방법(캡 스타일) 및 연결된 두 선 사이의 조인을 그리는 방법(조인 스타일)에 따라 정의됩니다. 펜의 브러시는 펜으로 생성된 획을 채우는 데 사용되는 QBrush 객체, 즉 QBrush 클래스가 채우기 패턴을 정의합니다.

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

텍스트를 그릴 때 글꼴은 QFont 클래스를 사용하여 지정됩니다. Qt는 지정된 속성을 가진 글꼴을 사용하거나, 일치하는 글꼴이 없으면 설치된 글꼴 중 가장 가까운 글꼴을 사용합니다. 실제로 사용되는 글꼴의 속성은 QFontInfo 클래스를 사용하여 검색할 수 있습니다. 또한 QFontMetrics 클래스는 폰트 측정값을 제공하고 QFontDatabase 클래스는 기본 창 시스템에서 사용할 수 있는 폰트에 대한 정보를 제공합니다.

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

앤티 앨리어싱 페인팅

그림을 그릴 때 픽셀 렌더링은 QPainter::Antialiasing 렌더 힌트에 의해 제어됩니다. QPainter::RenderHint 열거형은 특정 엔진에서 존중할 수도 있고 그렇지 않을 수도 있는 플래그를 QPainter 에 지정하는 데 사용됩니다.

QPainter::Antialiasing 값은 엔진이 가능한 경우 프리미티브의 가장자리를 앤티앨리어싱(다른 색상 강도를 사용하여 가장자리를 부드럽게 처리하는 것)해야 함을 나타냅니다.

채우기

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

Qt의 모든 색상은 RGB, HSV 및 CMYK 색상 모델을 지원하는 QColor 클래스로 표현됩니다. QColor 또한 알파 혼합 윤곽선 및 채우기(투명 효과 지정)를 지원하며 이 클래스는 플랫폼 및 장치에 독립적입니다(색상은 QColormap 클래스를 사용하여 하드웨어에 매핑됩니다). 자세한 내용은 QColor 클래스 설명서를 참조하세요.

사용 가능한 채우기 패턴은 Qt::BrushStyle 열거형에 설명되어 있습니다. 여기에는 균일한 색상부터 매우 희박한 패턴, 다양한 선 조합, 그라데이션 채우기 및 텍스처에 이르는 기본 패턴이 포함됩니다. Qt는 사용자 정의 그라데이션 채우기를 정의하기 위해 QGradient 클래스를 제공하며, 텍스처 패턴은 QPixmap 클래스를 사용하여 지정합니다.

QGradient

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

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

© 2025 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.