QPalette Class

QPalette 클래스에는 각 위젯 상태에 대한 색상 그룹이 포함되어 있습니다. 더 보기...

Header: #include <QPalette>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

공용 유형

enum ColorGroup { Disabled, Active, Inactive, Normal }
enum ColorRole { Window, WindowText, Base, AlternateBase, ToolTipBase, …, NoRole }

공용 함수

QPalette()
QPalette(Qt::GlobalColor button)
QPalette(const QColor &button)
QPalette(const QColor &button, const QColor &window)
QPalette(const QBrush &windowText, const QBrush &button, const QBrush &light, const QBrush &dark, const QBrush &mid, const QBrush &text, const QBrush &bright_text, const QBrush &base, const QBrush &window)
QPalette(const QPalette &p)
QPalette(QPalette &&other)
~QPalette()
(since 6.6) const QBrush &accent() const
const QBrush &alternateBase() const
const QBrush &base() const
const QBrush &brightText() const
const QBrush &brush(QPalette::ColorGroup group, QPalette::ColorRole role) const
const QBrush &brush(QPalette::ColorRole role) const
const QBrush &button() const
const QBrush &buttonText() const
qint64 cacheKey() const
const QColor &color(QPalette::ColorGroup group, QPalette::ColorRole role) const
const QColor &color(QPalette::ColorRole role) const
QPalette::ColorGroup currentColorGroup() const
const QBrush &dark() const
const QBrush &highlight() const
const QBrush &highlightedText() const
bool isBrushSet(QPalette::ColorGroup cg, QPalette::ColorRole cr) const
bool isCopyOf(const QPalette &p) const
bool isEqual(QPalette::ColorGroup cg1, QPalette::ColorGroup cg2) const
const QBrush &light() const
const QBrush &link() const
const QBrush &linkVisited() const
const QBrush &mid() const
const QBrush &midlight() const
const QBrush &placeholderText() const
QPalette resolve(const QPalette &other) const
void setBrush(QPalette::ColorRole role, const QBrush &brush)
void setBrush(QPalette::ColorGroup group, QPalette::ColorRole role, const QBrush &brush)
void setColor(QPalette::ColorGroup group, QPalette::ColorRole role, const QColor &color)
void setColor(QPalette::ColorRole role, const QColor &color)
void setColorGroup(QPalette::ColorGroup cg, const QBrush &windowText, const QBrush &button, const QBrush &light, const QBrush &dark, const QBrush &mid, const QBrush &text, const QBrush &bright_text, const QBrush &base, const QBrush &window)
void setCurrentColorGroup(QPalette::ColorGroup cg)
const QBrush &shadow() const
void swap(QPalette &other)
const QBrush &text() const
const QBrush &toolTipBase() const
const QBrush &toolTipText() const
const QBrush &window() const
const QBrush &windowText() const
QVariant operator QVariant() const
bool operator!=(const QPalette &p) const
QPalette &operator=(QPalette &&other)
QPalette &operator=(const QPalette &p)
(since 6.6) bool operator==(const QPalette &p) const
QDataStream &operator<<(QDataStream &s, const QPalette &p)
QDataStream &operator>>(QDataStream &s, QPalette &p)

상세 설명

팔레트는 세 가지 색상 그룹으로 구성됩니다: 활성, 비활성, 비활성입니다. Qt의 모든 위젯은 팔레트를 포함하며 팔레트를 사용하여 스스로 그립니다. 따라서 사용자 인터페이스를 쉽게 구성할 수 있고 일관성을 유지하기 쉽습니다.

새 위젯을 만들 때는 특정 색상을 하드 코딩하지 말고 팔레트의 색상을 사용하는 것이 좋습니다.

색상 그룹:

  • 활성 그룹은 키보드 초점이 있는 창에 사용됩니다.
  • 비활성 그룹은 다른 창에 사용됩니다.
  • 비활성화 그룹은 어떤 이유로 비활성화된 위젯(창이 아님)에 사용됩니다.

활성 및 비활성 창 모두 비활성 위젯을 포함할 수 있습니다. (비활성화된 위젯은 종종 액세스할 수 없거나 회색으로 표시된다고 합니다.)

대부분의 스타일에서 활성 상태와 비활성 상태는 동일하게 보입니다.

색상 및 브러시는 setColor() 및 setBrush()를 사용하여 팔레트의 색상 그룹에서 특정 역할에 맞게 설정할 수 있습니다. 색상 그룹에는 위젯이 직접 그리는 데 사용하는 색상 그룹이 포함되어 있습니다. 위젯은 "빨간색" 또는 "청록색"과 같은 문자 그대로의 색상보다는 "전경색" 및 "바탕색"과 같은 팔레트의 색상 그룹 역할을 사용하는 것이 좋습니다. 색상 역할은 ColorRole 문서에 열거되어 있으며 정의되어 있습니다.

현재 스타일의 기본 팔레트( QGuiApplication::palette()로 반환됨)를 사용하고 필요에 따라 수정할 것을 강력히 권장합니다. 이 작업은 Qt의 위젯이 그려질 때 수행됩니다.

색상 그룹을 수정하려면 순수한 색상 또는 픽셀맵 패턴을 원하는지 여부에 따라 setColor() 및 setBrush() 함수를 호출합니다.

또한 해당 color() 및 brush() 가져오기 함수와 현재 ColorGroup: window(), windowText(), base() 등의 ColorRole 를 가져오는 데 일반적으로 사용되는 편의 기능도 있습니다.

복사 생성자를 사용하여 팔레트를 복사하고 isCopyOf()를 사용하여 두 팔레트가 동일한지 테스트할 수 있습니다.

QPalette는 암시적 공유를 사용하여 최적화되어 있으므로 QPalette 객체를 인수로 전달하는 것이 매우 효율적입니다.

경고: 예를 들어 기본 테마 엔진을 사용하는 경우와 같이 일부 스타일은 모든 그리기에 팔레트를 사용하지 않습니다. Windows Vista와 macOS 스타일이 이에 해당합니다.

QApplication::setPalette(), QWidget::setPalette() 및 QColor참조하세요 .

멤버 유형 문서

enum QPalette::ColorGroup

상수설명
QPalette::Disabled1
QPalette::Active0
QPalette::Inactive2
QPalette::NormalActive활성의 동의어

enum QPalette::ColorRole

Color Roles

ColorRole 열거형은 현재 GUI에서 사용되는 다양한 상징적 색상 역할을 정의합니다.

핵심 역할은 다음과 같습니다:

상수설명
QPalette::Window10일반적인 배경색입니다.
QPalette::WindowText0일반적인 전경색입니다.
QPalette::Base9주로 텍스트 입력 위젯의 배경색으로 사용되지만 콤보박스 드롭다운 목록 및 툴바 핸들의 배경과 같은 다른 페인팅에도 사용할 수 있습니다. 일반적으로 흰색 또는 다른 밝은 색상을 사용합니다.
QPalette::AlternateBase16행 색이 번갈아 나타나는 뷰에서 대체 배경색으로 사용됩니다( QAbstractItemView::setAlternatingRowColors() 참조).
QPalette::ToolTipBase18QToolTipQWhatsThis 의 배경색으로 사용됩니다. 도구 설명은 활성 창이 아니므로 도구 설명은 비활성 색상 그룹인 QPalette 을 사용합니다.
QPalette::ToolTipText19QToolTipQWhatsThis 의 전경색으로 사용됩니다. 도구 설명은 활성 창이 아니므로 도구 설명은 비활성 색상 그룹인 QPalette 을 사용합니다.
QPalette::PlaceholderText20다양한 텍스트 입력 위젯의 플레이스홀더 색상으로 사용됩니다. 이 열거형 값은 Qt 5.12에 도입되었습니다.
QPalette::Text6Base 와 함께 사용되는 전경색. 일반적으로 WindowText 와 동일하며, 이 경우 WindowBase 와 좋은 대비를 제공해야 합니다.
QPalette::Button1일반 버튼 배경색. 일부 스타일에는 버튼에 다른 배경색이 필요하므로 이 배경은 Window 과 다를 수 있습니다.
QPalette::ButtonText8Button 색상과 함께 사용되는 전경색입니다.
QPalette::BrightText7WindowText 와는 매우 다르며 Dark 과 잘 대비되는 텍스트 색상입니다. 일반적으로 Text 또는 WindowText 이 대비가 좋지 않은 곳에 그려야 하는 텍스트(예: 누른 푸시 버튼)에 사용됩니다. 텍스트 색상은 단어 이외의 다른 것에도 사용할 수 있으며, 텍스트 색상은 일반적으로 텍스트에 사용되지만 선, 아이콘 등에도 텍스트 색상 역할을 사용하는 것이 일반적입니다.

3D 베벨 및 그림자 효과에 주로 사용되는 몇 가지 색상 역할이 있습니다. 이러한 모든 색 역할은 일반적으로 Window 에서 파생되며 해당 관계에 따라 사용됩니다. 예를 들어 버튼은 베벨을 매력적으로 보이게 하기 위해 여기에 의존하고, 모티프 스크롤 막대는 Mid 에 의존하여 Window 과 약간 다릅니다.

상수설명
QPalette::Light2Button 색상보다 밝습니다.
QPalette::Midlight3ButtonLight 사이.
QPalette::Dark4Button 보다 어둡습니다.
QPalette::Mid5ButtonDark 사이.
QPalette::Shadow11매우 어두운 색상. 기본적으로 그림자 색상은 Qt::black 입니다.

선택된(표시된) 항목에는 두 가지 역할이 있습니다:

상수설명
QPalette::Highlight12선택한 항목 또는 현재 항목을 나타내는 색상입니다. 기본적으로 강조 표시 색상은 Qt::darkBlue 입니다.
QPalette::Accent (since Qt 6.6)21일반적으로 기본, 창 및 버튼 색상을 대조하거나 보완하는 색상입니다. 일반적으로 사용자가 선택한 데스크톱 개인 설정을 나타냅니다. 대화형 구성 요소의 스타일링이 일반적인 사용 사례입니다. 명시적으로 설정하지 않는 한 기본값은 강조로 설정됩니다.
QPalette::HighlightedText13Highlight 와 대비되는 텍스트 색상입니다. 기본적으로 강조 표시된 텍스트 색상은 Qt::white 입니다.

하이퍼링크와 관련된 두 가지 색상 역할이 있습니다:

상수설명
QPalette::Link14방문하지 않은 하이퍼링크에 사용되는 텍스트 색상입니다. 기본적으로 링크 색상은 Qt::blue 입니다.
QPalette::LinkVisited15이미 방문한 하이퍼링크에 사용되는 텍스트 색상입니다. 기본적으로 링크가 방문한 색은 Qt::magenta 입니다.

Qt에서 서식 있는 텍스트를 렌더링할 때 LinkLinkVisited 역할은 사용하지 않으며, 링크의 모양을 변경하려면 CSS 및 QTextDocument::setDefaultStyleSheet() 함수를 사용하는 것이 좋습니다. 예를 들어

    QTextBrowser browser;
    QColor linkColor(Qt::red);
    QString sheet = QString::fromLatin1("a { text-decoration: underline; color: %1 }").arg(linkColor.name());
    browser.document()->setDefaultStyleSheet(sheet);
ConstantValue설명
QPalette::NoRole17역할 없음; 이 특수 역할은 종종 역할이 할당되지 않았음을 나타내는 데 사용됩니다.

멤버 함수 문서

QPalette::QPalette()

색상 역할이 설정되지 않은 빈 팔레트 객체를 생성합니다.

QWidget 의 팔레트로 사용하면 QWidget::setPalette()에 설명된 대로 색상이 확인됩니다.

QApplication::setPalette() 및 QApplication::palette()도 참조하세요 .

QPalette::QPalette(Qt::GlobalColor button)

button 색상으로 팔레트를 구성합니다. 다른 색상은 이 색상을 기준으로 자동으로 계산됩니다. Window 버튼 색상도 이 색상이 됩니다.

QPalette::QPalette(const QColor &button)

button 색상으로 팔레트를 구성합니다. 다른 색상은 이 색상을 기준으로 자동으로 계산됩니다. Window 버튼 색상도 이 색상이 됩니다.

QPalette::QPalette(const QColor &button, const QColor &window)

button 색상과 window 색상으로 팔레트를 구성합니다. 이 색상을 기준으로 다른 색상은 자동으로 계산됩니다.

QPalette::QPalette(const QBrush &windowText, const QBrush &button, const QBrush &light, const QBrush &dark, const QBrush &mid, const QBrush &text, const QBrush &bright_text, const QBrush &base, const QBrush &window)

팔레트를 구성합니다. windowText , button, light, dark, mid, text, bright_text, base, window 에 브러시, 픽스맵 또는 일반 색상을 전달할 수 있습니다.

QBrush참조하세요 .

QPalette::QPalette(const QPalette &p)

p 의 복사본을 생성합니다.

이 생성자는 암시적 공유 덕분에 빠릅니다.

[noexcept] QPalette::QPalette(QPalette &&other)

이동 - QPalette 인스턴스를 생성하여 other 이 가리키던 것과 동일한 개체를 가리키도록 합니다.

이동한 후에는 other 에만 할당하거나 파괴할 수 있습니다. 다른 작업을 수행하면 정의되지 않은 동작이 발생합니다.

[noexcept] QPalette::~QPalette()

팔레트를 파괴합니다.

[since 6.6] const QBrush &QPalette::accent() const

현재 색상 그룹의 강조 브러시를 반환합니다.

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

ColorRolebrush()도 참조하십시오 .

const QBrush &QPalette::alternateBase() const

현재 색상 그룹의 대체 기본 브러시를 반환합니다.

ColorRolebrush()도 참조하세요 .

const QBrush &QPalette::base() const

현재 색상 그룹의 기본 브러시를 반환합니다.

ColorRolebrush()도 참조하세요 .

const QBrush &QPalette::brightText() const

현재 색상 그룹의 밝은 텍스트 전경 브러시를 반환합니다.

ColorRolebrush()도 참조하세요 .

const QBrush &QPalette::brush(QPalette::ColorGroup group, QPalette::ColorRole role) const

지정된 색상의 브러시를 반환합니다 group, 지정된 색에 사용 role.

color(), setBrush() 및 ColorRole참조하십시오 .

const QBrush &QPalette::brush(QPalette::ColorRole role) const

이 함수는 오버로드된 함수입니다.

현재 ColorGroup 에서 주어진 색 role 으로 설정된 브러시를 반환합니다.

color(), setBrush() 및 ColorRole참조하세요 .

const QBrush &QPalette::button() const

현재 색상 그룹의 버튼 브러시를 반환합니다.

ColorRolebrush()도 참조하세요 .

const QBrush &QPalette::buttonText() const

현재 색상 그룹의 버튼 텍스트 전경 브러시를 반환합니다.

ColorRolebrush()도 참조하세요 .

qint64 QPalette::cacheKey() const

QPalette 객체의 내용을 식별하는 숫자를 반환합니다. 고유한 QPalette 객체는 동일한 내용을 참조하는 경우 동일한 키를 가질 수 있습니다.

팔레트가 변경되면 cacheKey()가 변경됩니다.

const QColor &QPalette::color(QPalette::ColorGroup group, QPalette::ColorRole role) const

지정된 색상의 색을 반환합니다 group, 지정된 색에 사용 role.

brush(), setColor() 및 ColorRole참조하십시오 .

const QColor &QPalette::color(QPalette::ColorRole role) const

이 함수는 오버로드된 함수입니다.

현재 ColorGroup 에서 주어진 색 role 에 설정된 색을 반환합니다.

brush() 및 ColorRole도 참조하세요 .

QPalette::ColorGroup QPalette::currentColorGroup() const

팔레트의 현재 색상 그룹을 반환합니다.

setCurrentColorGroup()도 참조하세요 .

const QBrush &QPalette::dark() const

현재 색상 그룹의 어두운 브러시를 반환합니다.

ColorRolebrush()도 참조하세요 .

const QBrush &QPalette::highlight() const

현재 색상 그룹의 하이라이트 브러시를 반환합니다.

ColorRolebrush()도 참조하세요 .

const QBrush &QPalette::highlightedText() const

현재 색상 그룹의 강조 표시된 텍스트 브러시를 반환합니다.

ColorRolebrush()도 참조하세요 .

bool QPalette::isBrushSet(QPalette::ColorGroup cg, QPalette::ColorRole cr) const

이 팔레트에 ColorGroup cgColorRole cr 이 이전에 설정된 경우 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

ColorGroup cgQPalette::NColorGroups 보다 작아야 하지만 QPalette::Current 을 사용할 수 있습니다. 이 경우 이전에 설정한 현재 색상 그룹이 사용됩니다.

ColorRole crQPalette::NColorRoles 보다 작아야 합니다.

setBrush() 및 currentColorGroup()도 참조하세요 .

bool QPalette::isCopyOf(const QPalette &p) const

이 팔레트와 p 이 서로의 복사본인 경우, 즉 둘 중 하나가 다른 하나의 복사본으로 생성되었고 이후 수정되지 않은 경우 true 을 반환하고, 그렇지 않은 경우 false 을 반환합니다. 이것은 동일성보다 훨씬 엄격합니다.

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

bool QPalette::isEqual(QPalette::ColorGroup cg1, QPalette::ColorGroup cg2) const

색 그룹 cg1cg2 과 같으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

const QBrush &QPalette::light() const

현재 색상 그룹의 라이트 브러시를 반환합니다.

ColorRolebrush()도 참조하세요 .

현재 색상 그룹의 방문하지 않은 링크 텍스트 브러시를 반환합니다.

ColorRolebrush()도 참조하세요 .

const QBrush &QPalette::linkVisited() const

현재 색상 그룹의 방문한 링크 텍스트 브러시를 반환합니다.

ColorRolebrush()도 참조하세요 .

const QBrush &QPalette::mid() const

현재 색상 그룹의 중간 브러시를 반환합니다.

ColorRolebrush()도 참조하세요 .

const QBrush &QPalette::midlight() const

현재 색상 그룹의 중간색 브러시를 반환합니다.

ColorRolebrush()도 참조하세요 .

const QBrush &QPalette::placeholderText() const

현재 색상 그룹의 플레이스홀더 텍스트 브러시를 반환합니다.

참고: Qt 5.12 이전에는 플레이스홀더 텍스트 색이 QPalette::text().color()에 알파 128을 적용하여 하드 코딩되었습니다. Qt 6에서는 독립적인 색입니다.

ColorRolebrush()도 참조하세요 .

QPalette QPalette::resolve(const QPalette &other) const

이 인스턴스와 other 의 결합인 새 QPalette 을 반환합니다. 이 인스턴스에 설정된 색상 역할이 우선합니다. 이 인스턴스에 설정되지 않은 역할은 other 에서 가져옵니다.

isBrushSet도 참조하세요 .

void QPalette::setBrush(QPalette::ColorRole role, const QBrush &brush)

팔레트의 모든 그룹에 대해 지정된 색상 role 의 브러시를 지정된 brush 으로 설정합니다.

brush(), setColor() 및 ColorRole도 참조하세요 .

void QPalette::setBrush(QPalette::ColorGroup group, QPalette::ColorRole role, const QBrush &brush)

이 함수는 오버로드된 함수입니다.

지정된 색상 role 에 사용되는 지정된 색상 group 의 브러시를 brush 로 설정합니다.

brush(), setColor() 및 ColorRole참조하세요 .

void QPalette::setColor(QPalette::ColorGroup group, QPalette::ColorRole role, const QColor &color)

지정된 색상 role 에 사용되는 지정된 색상 group 의 색상을 지정된 단색 color 으로 설정합니다.

setBrush(), color() 및 ColorRole참조하십시오 .

void QPalette::setColor(QPalette::ColorRole role, const QColor &color)

이 함수는 오버로드된 함수입니다.

모든 색상 그룹에서 지정된 색상 role 에 사용되는 색상을 지정된 단색 color 으로 설정합니다.

brush(), setColor() 및 ColorRole참조하세요 .

void QPalette::setColorGroup(QPalette::ColorGroup cg, const QBrush &windowText, const QBrush &button, const QBrush &light, const QBrush &dark, const QBrush &mid, const QBrush &text, const QBrush &bright_text, const QBrush &base, const QBrush &window)

그룹을 cg 으로 설정합니다. windowText , button, light, dark, mid, text, bright_text, base, window 에 브러시, 픽스맵 또는 일반 색상을 전달할 수 있습니다.

QBrush참조하세요 .

void QPalette::setCurrentColorGroup(QPalette::ColorGroup cg)

팔레트의 현재 색상 그룹을 cg 로 설정합니다.

currentColorGroup()도 참조하세요 .

const QBrush &QPalette::shadow() const

현재 색상 그룹의 그림자 브러시를 반환합니다.

ColorRolebrush()도 참조하세요 .

[noexcept] void QPalette::swap(QPalette &other)

이 팔레트 인스턴스를 other 로 바꿉니다. 이 작업은 매우 빠르며 실패하지 않습니다.

const QBrush &QPalette::text() const

현재 색상 그룹의 텍스트 전경 브러시를 반환합니다.

ColorRolebrush()도 참조하세요 .

const QBrush &QPalette::toolTipBase() const

현재 색상 그룹의 도구 설명 기본 브러시를 반환합니다. 이 브러시는 QToolTipQWhatsThis 에서 사용됩니다.

참고: 도구 설명은 활성 창이 아니므로 도구 설명은 비활성 색상 그룹인 QPalette 을 사용합니다.

ColorRolebrush()도 참조하세요 .

const QBrush &QPalette::toolTipText() const

현재 색상 그룹의 도구 설명 텍스트 브러시를 반환합니다. 이 브러시는 QToolTipQWhatsThis 에서 사용됩니다.

참고: 도구 설명은 활성 창이 아니므로 도구 설명은 비활성 색상 그룹인 QPalette 을 사용합니다.

ColorRolebrush()도 참조하세요 .

const QBrush &QPalette::window() const

현재 색상 그룹의 창(일반 배경) 브러시를 반환합니다.

ColorRolebrush()도 참조하세요 .

const QBrush &QPalette::windowText() const

현재 색상 그룹의 창 텍스트(일반 전경) 브러시를 반환합니다.

ColorRolebrush()도 참조하세요 .

QVariant QPalette::operator QVariant() const

팔레트를 QVariant

bool QPalette::operator!=(const QPalette &p) const

이 팔레트가 p 과 다르면 true (느리게)를 반환하고, 그렇지 않으면 false (보통 빠르게)를 반환합니다.

참고: 현재 ColorGroup 는 팔레트를 비교할 때 고려되지 않습니다.

operator==()도 참조하세요 .

[noexcept] QPalette &QPalette::operator=(QPalette &&other)

이동-이 other 인스턴스를 QPalette 인스턴스에 할당합니다.

QPalette &QPalette::operator=(const QPalette &p)

이 팔레트에 p 을 할당하고 이 팔레트에 대한 참조를 반환합니다.

이 작업은 암시적 공유 덕분에 빠릅니다.

[since 6.6] bool QPalette::operator==(const QPalette &p) const

이 팔레트가 p 과 같으면 true (보통 빠르게)를 반환하고, 그렇지 않으면 false (느리게)를 반환합니다.

참고: 팔레트를 비교할 때 다음 사항은 고려되지 않습니다:

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

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

관련 비회원

QDataStream &operator<<(QDataStream &s, const QPalette &p)

팔레트 p 를 스트림 s 에 쓰고 스트림에 대한 참조를 반환합니다.

QDataStream 연산자의 형식을참조하십시오 .

QDataStream &operator>>(QDataStream &s, QPalette &p)

스트림에서 팔레트 s 를 팔레트 p 로 읽고 스트림에 대한 참조를 반환합니다.

QDataStream 연산자의 형식을참조하십시오 .

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