このページでは

QPalette Class

QPalette クラスには、各ウィジェットの状態に対応する色グループが含まれています。詳細...

ヘッダー: #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
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)

詳細な説明

パレットは、「Active」、「Disabled」、「Inactive」の 3 つのカラーグループで構成されています。Qt Widgets のすべてのウィジェットはパレットを含んでおり、そのパレットを使用して自身を描画します。これにより、ユーザーインターフェースの設定が容易になり、一貫性を維持しやすくなります。

新しいウィジェットを作成する際は、特定の色をハードコーディングするのではなく、パレット内の色を使用することを強く推奨します。

色グループ:

  • 「Active」グループは、キーボードフォーカスを取得しているウィンドウに使用されます。
  • 「非アクティブ」グループは、その他のウィンドウに使用されます。
  • 「Disabled」グループは、何らかの理由で無効化されているウィジェット(ウィンドウではない)に使用されます。

アクティブなウィンドウと非アクティブなウィンドウの両方に、無効化されたウィジェットが含まれることがあります。(無効化されたウィジェットは、しばしば「アクセス不可」または「グレーアウト」と呼ばれます。)

ほとんどのスタイルでは、「Active」と「Inactive」の外観は同じです。

setColor() およびsetBrush() を使用すると、パレットの任意の色グループ内の特定のロールに対して色やブラシを設定できます。色グループには、ウィジェットが自身を描画するために使用する色のグループが含まれています。 ウィジェットでは、「red」や「turquoise」のような具体的な色名ではなく、パレットの「foreground」や「base」などの色グループロールを使用することを推奨します。これらの色ロールは、ColorRole のドキュメントで列挙および定義されています。

現在のスタイルのデフォルトパレット(QGuiApplication::palette() によって返されるもの)を使用し、必要に応じてそれを変更することを強く推奨します。これは、Qt Widgets が描画される際に自動的に行われます。

カラーグループを変更するには、純粋な色を使用するかピクマップパターンを使用するかによって、setColor() またはsetBrush() 関数を呼び出します。

また、対応するcolor()およびbrush()というゲッター関数があり、現在のColorGroup のColorRole を取得するための、よく使われる便利な関数として、window()、windowText()、base()などがあります。

コピーコンストラクタを使用してパレットをコピーしたり、isCopyOf() を使用して 2 つのパレットが同一であるかどうかをテストしたりできます。

QPalette は暗黙の共有によって最適化されているため、QPalette オブジェクトを引数として渡すことは非常に効率的です。

警告: 一部の スタイルでは、たとえばネイティブのテーマエンジンを利用している場合など、すべての描画にパレットを使用しないことがあります。これは、Windows Vista および macOS のスタイルの両方に当てはまります。

関連項目: QApplication::setPalette()、QWidget::setPalette()、およびQColor 。

メンバ型のドキュメント

enum QPalette::ColorGroup

定数値説明
QPalette::Disabled1 
QPalette::Active0 
QPalette::Inactive2 
QPalette::NormalActive「Active」の同義語

enum QPalette::ColorRole

色の役割

ColorRole 列挙型は、現在の GUI で使用されるさまざまな記号的な色の役割を定義しています。

主な役割は以下の通りです:

定数値説明
QPalette::Window10一般的な背景色。
QPalette::WindowText0一般的な前景色。
QPalette::Base9主にテキスト入力ウィジェットの背景色として使用されますが、コンボボックスのドロップダウンリストの背景やツールバーのハンドルなど、その他の描画にも使用できます。通常は白またはその他の明るい色になります。
QPalette::AlternateBase16行の色が交互に変わるビューにおいて、交互の背景色として使用されます(QAbstractItemView::setAlternatingRowColors() を参照)。
QPalette::ToolTipBase18QToolTip およびQWhatsThis の背景色として使用されます。ツールチップはアクティブなウィンドウではないため、QPalette の「非アクティブ」カラーグループが使用されます。
QPalette::ToolTipText19QToolTip およびQWhatsThis の前景色として使用されます。ツールチップはアクティブなウィンドウではないため、QPalette の「Inactive」カラーグループが使用されます。
QPalette::PlaceholderText20さまざまなテキスト入力ウィジェットのプレースホルダー色として使用されます。この列挙型値は Qt 5.12 で導入されました。
QPalette::Text6Base で使用される前景色です。通常はWindowText と同じですが、その場合はWindow およびBase とのコントラストが十分にある必要があります。
QPalette::Button1ボタンの一般的な背景色です。スタイルによってはボタンに異なる背景色を必要とする場合があるため、この背景色はWindow とは異なる場合があります。
QPalette::ButtonText8Button の色と組み合わせて使用される前景色。
QPalette::BrightText7WindowText と大きく異なり、例えばDark などと良好なコントラストを持つテキスト色。通常、Text やWindowText ではコントラストが不十分になる場所(押下中のプッシュボタンなど)に描画する必要があるテキストに使用されます。 なお、テキストカラーは単なる文字以外にも使用可能です。通常はテキストに使用されますが、線やアイコンなどにテキストカラーの役割を用いることも非常に一般的です。

主に3Dのベベルやシャドウ効果に使用されるカラーロールがいくつかあります。これらはすべて通常、Window から派生しており、その関係性に基づいた方法で使用されます。例えば、ボタンではベベルを魅力的に見せるためにこの関係に依存しており、Motifのスクロールバーでは、Mid がWindow とわずかに異なるように設定されています。

定数値説明
QPalette::Light2Button の色よりも明るい。
QPalette::Midlight3Button とLight の間。
QPalette::Dark4Button より濃い色。
QPalette::Mid5Button とDark の間。非常に暗い色。
QPalette::Shadow11非常に暗い色です。デフォルトでは、影の色はQt::black です。

選択(マーク)された項目には、2つの役割があります:

定数値説明
QPalette::Highlight12選択された項目または現在の項目を示す色。デフォルトでは、ハイライト色はQt::darkBlue です。
QPalette::Accent (since Qt 6.6)21通常、「Base」、「Window」、「Button」の色と対照的または調和する色です。これは通常、ユーザーがデスクトップをカスタマイズする際に選択した色を表します。インタラクティブなコンポーネントのスタイリングが典型的な使用例です。明示的に設定されていない場合、デフォルトは「Highlight」になります。
QPalette::HighlightedText13Highlight と対照的なテキストの色。デフォルトでは、ハイライトされたテキストの色はQt::white です。

ハイパーリンクに関連する色の役割には、以下の2つがあります:

定数値説明
QPalette::Link14未訪問のハイパーリンクに使用されるテキストの色。デフォルトでは、リンクの色はQt::blue です。
QPalette::LinkVisited15すでに訪問済みのハイパーリンクに使用されるテキストの色。デフォルトでは、リンクの訪問済み色はQt::magenta です。

なお、Qtでリッチテキストをレンダリングする際は、Link およびLinkVisited ロールは使用しません。リンクの外観を変更するには、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);
定数値説明
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 で導入されました。

ColorRole およびbrush()も参照してください 。

const QBrush &QPalette::alternateBase() const

現在のカラーグループの代替ベースブラシを返します。

ColorRole およびbrush()も参照してください 。

const QBrush &QPalette::base() const

現在のカラーグループのベースブラシを返します。

ColorRole およびbrush()も参照してください 。

const QBrush &QPalette::brightText() const

現在のカラーグループの明るいテキスト用前景色ブラシを返します。

ColorRole およびbrush()も参照してください 。

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

現在のカラーグループのボタンブラシを返します。

ColorRole およびbrush()も参照してください 。

const QBrush &QPalette::buttonText() const

現在のカラーグループのボタンテキストのフォアグラウンドブラシを返します。

ColorRole およびbrush()も参照してください 。

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

現在のカラーグループのダークブラシを返します。

ColorRole およびbrush()も参照してください 。

const QBrush &QPalette::highlight() const

現在のカラーグループのハイライトブラシを返します。

ColorRole およびbrush()も参照してください 。

const QBrush &QPalette::highlightedText() const

現在のカラーグループのハイライトされたテキストブラシを返します。

ColorRole およびbrush()も参照してください 。

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

このパレットに対して、ColorGroup (cg )およびColorRole (cr )が以前に設定されている場合は、true を返します。そうでない場合は、false を返します。

ColorGroup cg はQPalette::NColorGroups より小さくなければなりませんが、QPalette::Current を使用することも可能です。この場合、以前に設定された現在のカラーグループが使用されます。

ColorRole (cr )は、QPalette::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

色グループ `cg1 ` が `cg2` と等しい場合、`true ` を(通常は短時間で)返します。そうでない場合は、`false` を返します。

const QBrush &QPalette::light() const

現在のカラーグループのライトブラシを返します。

ColorRole およびbrush()も参照してください 。

現在のカラーグループの、未訪問リンクのテキストブラシを返します。

ColorRole およびbrush()も参照してください 。

const QBrush &QPalette::linkVisited() const

現在のカラーグループの、アクセス済みのリンクテキストブラシを返します。

「 ColorRole 」および「brush()」も参照してください 。

const QBrush &QPalette::mid() const

現在のカラーグループのミッドブラシを返します。

ColorRole およびbrush()も参照してください 。

const QBrush &QPalette::midlight() const

現在のカラーグループのミッドライトブラシを返します。

ColorRole およびbrush()も参照してください 。

const QBrush &QPalette::placeholderText() const

現在のカラーグループのプレースホルダーテキストブラシを返します。

注: Qt 5.12以前では 、プレースホルダーテキストの色は、QPalette::text() にアルファ値 128 を適用したcolor() としてハードコードされていました。Qt 6 では、独立した色となっています。

関連項目: ColorRole およびbrush()。

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)

指定された色 `group` のブラシ(指定された色 `role` で使用されるもの)を `brush` に設定します。

これはオーバーロードされた関数です。

brush()、setColor()、およびColorRoleも参照してください 。

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

指定された色group (指定された色role に使用される)を、指定されたソリッド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

現在のカラーグループのシャドウブラシを返します。

ColorRole およびbrush()も参照してください 。

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

このパレットインスタンスをother と入れ替えます。この操作は非常に高速で、失敗することはありません。

const QBrush &QPalette::text() const

現在の色グループのテキスト前景色ブラシを返します。

ColorRole およびbrush()も参照してください 。

const QBrush &QPalette::toolTipBase() const

現在のカラーグループのツールチップ用ベースブラシを返します。このブラシは、QToolTip およびQWhatsThis で使用されます。

注:ツール チップは アクティブなウィンドウではないため、QPalette の「非アクティブ」カラーグループが使用されます。

関連項目: ColorRole およびbrush()。

const QBrush &QPalette::toolTipText() const

現在のカラーグループのツールチップテキスト用ブラシを返します。このブラシは、QToolTip およびQWhatsThis で使用されます。

注:ツール チップは アクティブなウィンドウではないため、QPalette の「非アクティブ」カラーグループが使用されます。

関連項目: ColorRole およびbrush()。

const QBrush &QPalette::window() const

現在のカラーグループのウィンドウ(一般的な背景)用ブラシを返します。

ColorRole およびbrush()も参照してください 。

const QBrush &QPalette::windowText() const

現在のカラーグループのウィンドウテキスト(一般的な前景色)ブラシを返します。

ColorRole およびbrush()も参照してください 。

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 演算子の形式」も参照してください 。

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