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)

詳細説明

パレットは3つのカラーグループで構成されます:アクティブ無効非アクティブです。Qt のすべてのウィジェットはパレットを持ち、パレットを使って描画します。これにより、ユーザーインターフェイスを簡単に設定でき、一貫性を保ちやすくなります。

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

カラーグループ

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

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

ほとんどのスタイルでは、アクティブと非アクティブは同じように見えます。

色とブラシは、setColor ()とsetBrush ()を使用して、パレットのカラーグループのいずれかの特定の役割に設定することができます。カラーグループには、ウィジェットが描画に使用する色のグループが含まれます。ウィジェットでは、"red "や "turquoise "といった文字通りの色ではなく、"foreground "や "base "といったパレットのカラーグループのロールを使用することをお勧めします。色の役割は、ColorRole のドキュメントに列挙され、定義されています。

現在のスタイルのデフォルトパレット(QGuiApplication::palette()によって返される)を使用し、必要に応じて変更することを強くお勧めします。これは、Qtのウィジェットが描画されるときに行われます。

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

また、対応するcolor() とbrush() のゲッターや、現在のColorGroupColorRole を取得するためによく使われる便利な関数もあります :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::NormalActiveActive の同義語

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::ButtonText8前景色Button と併用される色。
QPalette::BrightText7テ キ ス ト 色。WindowText と は異な り 、Dark 等 と は対照的です。通常、押されたプッシュボタンなど、TextWindowText ではコントラストが悪くなるような場所に描画する必要があるテキストに使われます。テ キ ス ト カ ラ ーは単語以外に も 使え る こ と に留意 し て く だ さ い。 テ キ ス ト カ ラ ーは通常テ キ ス ト に用い ら れますが、 テ キ ス ト カ ラ ーの役割を線やア イ コ ンな ど に使 う こ と も よ く あ り ます。

主に3Dベベルやシャドウ効果に使われる色の役割もあります。これらはすべて通常、Window から派生し、その関係に依存した方法で使用されます。例えば、ボタンはベベルを魅力的に見せるためにこれに依存し、 MotifのスクロールバーはMid に依存してWindow と若干異なります。

定数説明
QPalette::Light2Button より明るい色。
QPalette::Midlight3ButtonLight の間。
QPalette::Dark4Button より暗い。
QPalette::Mid5ButtonDark の間。
QPalette::Shadow11非常に暗い色。デフォルトでは、影の色はQt::black です。

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

定数説明
QPalette::Highlight12選択された項目または現在の項目を示す色。デフォルトでは、ハイライト色はQt::darkBlue です。
QPalette::Accent (since Qt 6.6)21通常、ベース、ウィンドウ、ボタンの色と対照的または補完する色です。こ れは通常、 デス ク ト ッ プのパーソナ リ ゼーシ ョ ン をユーザーが選択す る こ と を表 し ます。インタラクティブ・コンポーネントのスタイリングが典型的な使用例です。明示的に設定されない限り、デフォルトは Highlight です。
QPalette::HighlightedText13Highlight と対照的なテキスト色です。デフ ォル ト では、 ハイ ラ イ ト テ キ ス ト 色はQt::white です。

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

定数説明
QPalette::Link14未訪問のハイパーリンクに使われるテキスト色。デフォルトでは、リンクの色はQt::blue です。
QPalette::LinkVisited15既に訪問済みのハイパーリンクに使われるテキスト色。デフ ォル ト では、 linkvisited カ ラ ーは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);
定数説明
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 には、ブラシ、pixmap、プレーン色のいずれかを渡すことができます。

QBrushも参照

QPalette::QPalette(const QPalette &p)

p のコピーを構築します。

このコンストラクタは、暗黙の共有のおかげで高速です。

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

Move-QPaletteインスタンスを構築し、other が指していたのと同じオブジェクトを指すようにします。

移動された後は、other に代入するか、破棄することしかできません。それ以外の操作は未定義の動作になります。

[noexcept] QPalette::~QPalette()

パレットを破棄します。

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

現在のカラーグループのアクセントブラシを返します。

この関数は Qt 6.6 で導入されました。

ColorRolebrush()も参照してください

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

指定 さ れた色role に対 し て用い ら れる、 指定 さ れた色group のブラシを返 し ます。

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

指定された色role に使用される、指定された色group の色を返します。

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

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

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()としてハードコードされていました。color()では、128のアルファが適用されます。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)

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

与えられた色role に使われる、指定された色group のブラシを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

現在の色グループのツールチップベースブラシを返します。こ のブラシはQToolTipQWhatsThis で使われます。

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

ColorRolebrush()も参照

const QBrush &QPalette::toolTipText() const

現在の色グループのツールチップテキストブラシを返します。このブラシはQToolTipQWhatsThis で使用されます。

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

ColorRole およびbrush()も参照

const QBrush &QPalette::window() const

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

ColorRole およびbrush() も参照

const QBrush &QPalette::windowText() const

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

ColorRole およびbrush() も参照

QVariant QPalette::operator QVariant() const

パレットをQVariant

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

このパレットがp と異なる場合はtrue を (ゆっくり) 返す;そうでない場合はfalse を (通常は素早く) 返す。

注意: パレットを比較する際に、現在のColorGroup は考慮されません。

operator==()も参照

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

Move-このQPalette インスタンスにother を割り当てる。

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

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。