이 페이지에서

QCanvasGradient Class

QCanvasGradient는 모든 QCanvasPainter 그라데이션 브러시의 기본 클래스입니다. 더 보기...

헤더: #include <QCanvasGradient>
CMake: find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)
target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter)
다음부터: Qt 6.11
상속된 버전:

QCanvasBoxGradient, QCanvasConicalGradient, QCanvasLinearGradient, 그리고 QCanvasRadialGradient

공개 함수

QCanvasGradient()
(since 6.12) void addColorStop(qreal position, QColor color)
QColor endColor() const
void setColorAt(qreal position, QColor color)
void setEndColor(QColor color)
(since 6.12) void setImage(const QCanvasImage &image, int index = 0)
void setStartColor(QColor color)
void setStops(const QCanvasGradientStops &stops)
QColor startColor() const
QCanvasGradientStops stops() const
QCanvasBrush::BrushType type() const
operator QCanvasBrush() const &
operator QVariant() const

보호된 함수

QCanvasGradient(const QCanvasGradient &)
QCanvasGradient(QCanvasGradient &&)
~QCanvasGradient()
QCanvasGradient &operator=(QCanvasGradient &&)
QCanvasGradient &operator=(const QCanvasGradient &)
QCanvasGradientStops
bool operator!=(const QCanvasGradient &lhs, const QCanvasGradient &rhs)
QDataStream &operator<<(QDataStream &stream, const QCanvasGradient &gradient)
QDataStream &operator<<(QDataStream &stream, const QCanvasGradientStop &stop)
bool operator==(const QCanvasGradient &lhs, const QCanvasGradient &rhs)
QDataStream &operator>>(QDataStream &stream, QCanvasGradient &gradient)
QDataStream &operator>>(QDataStream &stream, QCanvasGradientStop &stop)

상세 설명

QCanvasGradient는 모든 QCanvasPainter 그라데이션 브러시의 기본 클래스입니다. 현재 QCanvasLinearGradient, QCanvasRadialGradient, QCanvasConicalGradient 및 QCanvasBoxGradient 의 네 가지 유형의 그라데이션이 있습니다.

setStartColor, setEndColor, setColorAt 또는 setStops 에 스톱이 지정되지 않은 경우, 그라디언트는 투명한 검정색(0,0,0,0)으로 렌더링됩니다. 스톱이 단 하나만 지정된 경우, 그라디언트는 해당 색상으로 채워집니다.

QCanvasPainter 그라디언트를 그리는 데 두 가지 다른 방식을 사용합니다.

  • 스톱이 최대 2개인 경우, 색상은 2개의 vec4 유니폼으로 셰이더에 전달됩니다. 이를 통해 중간에 추가 단계 없이 2스톱 그라디언트의 애니메이션이 매우 높은 성능으로 처리됩니다.
  • 스톱이 2개 이상인 경우, 색상은 1차원 텍스처로 셰이더에 전달됩니다. 기본적으로 텍스처 크기는 품질과 성능을 최적화하여 1x256 픽셀로 설정됩니다. 텍스처는 캐시되므로, 그라디언트의 스톱이나 색상이 변경되지 않을 경우 다른 그라디언트 속성(위치, 각도 등)이 변경되더라도 이전 텍스처를 재사용할 수 있습니다. 다중 스톱 그라디언트의 애니메이션은 빠르지만 텍스처 업로드가 발생하므로, 그만한 가치가 있는지 고려해 보십시오.

그라디언트 텍스처 사용을 제어하는 환경 변수는 다음과 같습니다:

  • QCPAINTER_DISABLE_TEXTURE_USAGE_TRACKING - 기본적으로 그라디언트 텍스처 사용량이 추적되며 최대 허용량 이내로 유지됩니다. 이 환경 변수를 설정하면 추적을 비활성화하고 모든 그라디언트 텍스처를 메모리에 보관합니다.
  • QCPAINTER_MAX_TEXTURES - 기본적으로 텍스처의 최대 개수는 1024 입니다. 이 환경 변수에 원하는 최대 텍스처 개수를 설정하세요. 최대 개수에 도달하면 현재 사용되지 않는 임시 그라디언트 텍스처가 자동으로 제거됩니다.

    참고: 텍스처 사용량 추적 기능이 비활성화된 경우에는이 설정이 적용되지 않습니다.

멤버 함수 문서

[delete] QCanvasGradient::QCanvasGradient()

QCanvasGradient 의 인스턴스를 기본 생성합니다. 이 함수는 삭제되었습니다.

[constexpr noexcept protected default] QCanvasGradient::QCanvasGradient(const QCanvasGradient &)

QCanvasGradient 의 인스턴스를 복사 생성합니다.

[constexpr noexcept protected default] QCanvasGradient::QCanvasGradient(QCanvasGradient &&)

QCanvasGradient 의 인스턴스를 move-construct 방식으로 생성합니다.

[constexpr noexcept protected default] QCanvasGradient::~QCanvasGradient()

QCanvasGradient 의 인스턴스를 삭제합니다.

[since 6.12] void QCanvasGradient::addColorStop(qreal position, QColor color)

지정된 position 에, 지정된 color 를 가진 중지점을 생성합니다. 지정된 position 는 0에서 1 사이의 값이어야 합니다.

이 메서드는 HTML CanvasGradient 과의 호환성을 위해 제공됩니다. 이는 setColorAt()과 동일합니다.

이 함수는 Qt 6.12에서 도입되었습니다.

setStops() 및 stops()도 참조하십시오 .

QColor QCanvasGradient::endColor() const

그라데이션의 끝 색상 또는 가장 큰 위치에 해당하는 색상을 반환합니다. 스톱이 설정되지 않은 경우, 투명한 검정색(0, 0, 0, 0)을 반환합니다.

setEndColor()도 참조하십시오 .

void QCanvasGradient::setColorAt(qreal position, QColor color)

지정된 position 위치에, 지정된 color 값을 가진 정지점을 생성합니다. 지정된 position 값은 0에서 1 사이의 범위여야 합니다.

setStops() 및 stops()도 참조하십시오 .

void QCanvasGradient::setEndColor(QColor color)

그라데이션의 끝 색상을 color 로 설정합니다. 이는 position 1 을 지정하여 setColorAt()를 호출하는 것과 동일합니다.

endColor()도 참조하십시오 .

[since 6.12] void QCanvasGradient::setImage(const QCanvasImage &image, int index = 0)

y 좌표 index 에서 image 를 그라디언트 소스로 사용합니다. 이는 예를 들어 setStops() 또는 setColorAt()을 사용하여 그라디언트 스톱을 설정하는 방법의 대안입니다. 이미지의 예상 기본 너비는 256픽셀이지만, QCPAINTER_GRADIENT_SIZE를 정의하여 조정할 수 있습니다. 인덱스 매개변수는 선택 사항이며, 이미지 높이가 1픽셀일 때는 필요하지 않습니다. 인덱스의 최대값은 이미지 높이 - 1이어야 합니다.

스톱을 설정하는 대신 이 메서드를 사용할 수 있는 이유는 다음과 같습니다:

  • 스톱을 파싱할 필요가 없으므로 생성 속도가 약간 더 빠릅니다. 또한, ` index`를 사용하여 단일 이미지에 여러 그라데이션을 포함할 수 있습니다.
  • 그라데이션을 스톱 집합으로 변환하지 않고 디자인이나 이미지에서 직접 사용할 수 있습니다.
  • 가우시안 곡선과 같은 비선형 그라디언트를 사용할 수 있습니다.

참고: 스톱과 이미지가 모두 설정된경우 , 스톱이 우선적으로 사용됩니다.

다음은 ` 256x1 ` 그라디언트 이미지를 사용하는 간단한 예시입니다:

파란색에서 빨간색, 주황색으로 점차 변하는 얇은 가로 줄무늬
중앙은 흰색이고 가장자리는 빨간색과 보라색으로 변하는 방사형 그라디언트가 적용된 정사각형
static QImage image(":/gradient1.png");
QCanvasImage gradImage = p->addImage(image);
QRectF rect(0, 0, 200, 200);
QCanvasRadialGradient rg(rect.center(), 20, 150);
rg.setImage(gradImage);
p->setFillStyle(rg);
p->fillRect(rect);

이 함수는 Qt 6.12에서 도입되었습니다.

setStops()도 참조하십시오 .

void QCanvasGradient::setStartColor(QColor color)

그라데이션의 시작 색상을 color 로 설정합니다. 이는 position 0 을 사용하여 setColorAt()를 호출하는 것과 동일합니다.

startColor()도 참조하십시오 .

void QCanvasGradient::setStops(const QCanvasGradientStops &stops)

현재의 정지점 집합을 지정된 stops 로 대체합니다.

정류장 목록에 대한 규칙은 다음과 같습니다:

  • 목록에는 최소 2개의 정지 지점이 포함되어야 합니다.
  • 정지점의 위치는 0에서 1 사이의 범위여야 하며, 가장 낮은 위치의 정지점이 먼저 오도록 정렬되어야 합니다.
  • 첫 번째 위치는 0.0이어야 하며, 마지막 위치는 1.0이어야 합니다.

setColorAt() 및 stops()도 참조하십시오 .

QColor QCanvasGradient::startColor() const

그라데이션의 시작 색상 또는 가장 작은 위치에 해당하는 색상을 반환합니다. 스톱이 설정되지 않은 경우, 투명한 검정색(0, 0, 0, 0)을 반환합니다.

setStartColor()도 참조하십시오 .

QCanvasGradientStops QCanvasGradient::stops() const

이 그라디언트의 정지 지점을 반환합니다.

setStops() 및 setColorAt()도 참조하십시오 .

QCanvasBrush::BrushType QCanvasGradient::type() const

그라디언트의 유형을 반환합니다.

QCanvasGradient::operator QCanvasBrush() const &

그라데이션을 ` QCanvasBrush` 형식으로 반환합니다.

이 함수는 QCanvasGradient::operator QCanvasBrush() &&를 오버로드합니다.

QCanvasGradient::operator QVariant() const

그라디언트를 ` QVariant` 형식으로 반환합니다.

[constexpr noexcept protected default] QCanvasGradient &QCanvasGradient::operator=(QCanvasGradient &&)

other 를 이 QCanvasGradient 인스턴스에 할당합니다.

[constexpr noexcept protected default] QCanvasGradient &QCanvasGradient::operator=(const QCanvasGradient &)

other 를 이 QCanvasGradient 인스턴스에 복사-할당합니다.

관련 비회원

QCanvasGradientStops

QList 에 대한 typedef <QCanvasGradientStop>.

[noexcept] bool operator!=(const QCanvasGradient &lhs, const QCanvasGradient &rhs)

그라디언트 lhs 가 rhs 와 다를 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.

operator==()도 참조하십시오 .

QDataStream &operator<<(QDataStream &stream, const QCanvasGradient &gradient)

지정된 ` gradient `를 지정된 ` stream `에 기록하고, ` stream`에 대한 참조를 반환합니다.

Qt 데이터 유형의 직렬화항목도 참조하십시오 .

QDataStream &operator<<(QDataStream &stream, const QCanvasGradientStop &stop)

주어진 ` stream `에 그라디언트 stop 를 기록하고, ` stream`에 대한 참조를 반환합니다.

Qt 데이터 유형 직렬화항목도 참조하십시오 .

[noexcept] bool operator==(const QCanvasGradient &lhs, const QCanvasGradient &rhs)

그라디언트 lhs 가 rhs 와 같으면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.

operator!=()도 참조하십시오 .

QDataStream &operator>>(QDataStream &stream, QCanvasGradient &gradient)

지정된 stream 에서 지정된 gradient 를 읽어들이고, stream 에 대한 참조를 반환합니다.

Qt 데이터 유형 직렬화항목도 참조하십시오 .

QDataStream &operator>>(QDataStream &stream, QCanvasGradientStop &stop)

지정된 stream 에서 그라디언트 stop 를 읽어들이고, stream 에 대한 참조를 반환합니다.

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.