Класс QPalette
Класс QPalette содержит группы цветов для каждого состояния виджета. Подробнее...
| Заголовок: | #include <QPalette> |
| qmake: | QT += gui |
Открытые типы
| перечисление | ColorGroup { Disabled, Active, Inactive, Normal } |
| перечисление | ColorRole { Window, Background, WindowText, Foreground, ..., NoRole } |
Общедоступные функции
| QPalette(QPalette &&other) | |
| QPalette(const QPalette &p) | |
| 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 QColor &button, const QColor &window) | |
| QPalette(Qt::GlobalColor button) | |
| QPalette(const QColor &button) | |
| QPalette() | |
| QPalette & | operator=(QPalette &&other) |
| QPalette & | operator=(const QPalette &p) |
| ~QPalette() | |
| 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 |
| bool | operator==(const QPalette &p) const |
Связанные нечлены
| QDataStream & | operator<<(QDataStream &s, const QPalette &p) |
| QDataStream & | operator>>(QDataStream &s, QPalette &p) |
Подробное описание
Палитра состоит из трёх групп цветов: Активный, Отключённый и Неактивный. Все виджеты в Qt содержат палитру и используют её для отрисовки. Это делает пользовательский интерфейс легко настраиваемым и обеспечивает его единообразный вид.
Если вы создаёте новый виджет, настоятельно рекомендуем использовать цвета из палитры, а не жёстко задавать конкретные цвета.
Группы цветов:
- Группа Активный используется для окна, имеющего фокус клавиатуры.
- Группа Неактивный используется для других окон.
- Группа Отключённый используется для виджетов (а не окон), которые по какой-либо причине отключены.
Как активные, так и неактивные окна могут содержать отключённые виджеты. (Отключённые виджеты часто называют недоступными или серыми.)
В большинстве стилей активный и неактивный вид выглядят одинаково.
Цвета и кисти можно задать для определённых ролей в любой группе цветов палитры с помощью setColor() и setBrush(). Группа цветов содержит набор цветов, используемых виджетами для отрисовки. Рекомендуется, чтобы виджеты использовали роли из палитры, такие как "foreground" и "base", а не буквальные цвета, такие как "красный" или "бирюзовый". Роли цветов перечислены и определены в документации ColorRole.
Настоятельно рекомендуем использовать стандартную палитру текущего стиля (возвращаемую QGuiApplication::palette()) и при необходимости её модифицировать. Это делают виджеты Qt при их отрисовке.
Чтобы изменить группу цветов, вызываются функции setColor() и setBrush(), в зависимости от того, нужен ли чистый цвет или текстурированная кисть.
Также существуют соответствующие функции-получатели color() и brush(), а также часто используемая вспомогательная функция для получения ColorRole для текущей ColorGroup: window(), windowText(), base() и т. д.
Вы можете скопировать палитру, используя конструктор копирования, и проверить, являются ли две палитры идентичными, используя isCopyOf().
QPalette оптимизирована за счёт использования явного совместного использования, поэтому передача объектов QPalette в качестве аргументов очень эффективна.
Предупреждение: Некоторые стили не используют палитру для всей отрисовки, например, если они используют собственные движки тем оформления. Это относится как к стилям Windows Vista, так и macOS.
См. также QApplication::setPalette(), QWidget::setPalette() и QColor.
Документация типов членов
перечисление QPalette::ColorGroup
| Постоянная | Значение | Описание |
|---|---|---|
QPalette::Disabled |
1 |
|
QPalette::Active |
0 |
|
QPalette::Inactive |
2 |
|
QPalette::Normal |
Active |
синоним для Active |
перечисление QPalette::ColorRole
Перечисление ColorRole определяет различные символические цветовые роли, используемые в текущих GUI.
Основные роли:
| Постоянная | Значение | Описание |
|---|---|---|
QPalette::Window |
10 |
Общий цвет фона. |
QPalette::Background |
Window |
Это значение устарело. Используйте Window вместо него. |
QPalette::WindowText |
0 |
Общий цвет переднего плана. |
QPalette::Foreground |
WindowText |
Это значение устарело. Используйте WindowText вместо него. |
QPalette::Base |
9 |
В основном используется как цвет фона для виджетов ввода текста, но также может использоваться для других операций рисования — например, для фона выпадающих списков combobox и ручек панели инструментов. Обычно он белый или другой светлый цвет. |
QPalette::AlternateBase |
16 |
Используется в качестве альтернативного цвета фона в представлениях с чередующимися цветами строк (см. QAbstractItemView::setAlternatingRowColors()). |
QPalette::ToolTipBase |
18 |
Используется в качестве цвета фона для QToolTip и QWhatsThis. Подсказки используют группу цветов Inactive палитры QPalette, потому что подсказки не являются активными окнами. |
QPalette::ToolTipText |
19 |
Используется в качестве цвета переднего плана для QToolTip и QWhatsThis. Подсказки используют группу цветов Inactive палитры QPalette, потому что подсказки не являются активными окнами. |
QPalette::PlaceholderText |
20 |
Используется в качестве цвета-заполнителя для различных виджетов ввода текста. Это значение перечисления было добавлено в Qt 5.12 |
QPalette::Text |
6 |
Цвет переднего плана, используемый с Base. Обычно он такой же, как и WindowText, в котором случае он должен обеспечивать хороший контраст с Window и Base. |
QPalette::Button |
1 |
Общий цвет фона кнопок. Этот фон может отличаться от Window, так как некоторые стили требуют другого цвета фона для кнопок. |
QPalette::ButtonText |
8 |
Цвет переднего плана, используемый с цветом Button. |
QPalette::BrightText |
7 |
Цвет текста, сильно отличающийся от WindowText, и хорошо контрастирующий, например, с Dark. Обычно используется для текста, который должен быть нарисован там, где Text или WindowText дадут плохой контраст, например, на нажатых кнопках. Обратите внимание, что цвета текста могут использоваться не только для слов; цвета текста обычно используются для текста, но довольно часто используются для линий, значков и т. д. |
Существуют некоторые цветовые роли, используемые в основном для эффектов 3D-рельефа и теней. Все они обычно выводятся из Window, и используются способами, зависящими от этой связи. Например, кнопки зависят от него, чтобы рельефы выглядели привлекательно, а полосы прокрутки Motif зависят от Mid для того, чтобы быть немного отличными от Window.
| Постоянная | Значение | Описание |
|---|---|---|
QPalette::Light |
2 |
Более светлый, чем цвет Button. |
QPalette::Midlight |
3 |
Между Button и Light. |
QPalette::Dark |
4 |
Темнее, чем Button. |
QPalette::Mid |
5 |
Между Button и Dark. |
QPalette::Shadow |
11 |
Очень тёмный цвет. По умолчанию цвет тени — Qt::black. |
Выделенные (отмеченные) элементы имеют две роли:
| Постоянная | Значение | Описание |
|---|---|---|
QPalette::Highlight |
12 |
Цвет для обозначения выделенного или текущего элемента. По умолчанию цвет выделения — Qt::darkBlue. |
QPalette::HighlightedText |
13 |
Цвет текста, контрастирующий с Highlight. По умолчанию цвет выделенного текста — Qt::white. |
Есть две цветовые роли, относящиеся к гиперссылкам:
| Константа | Значение | Описание |
|---|---|---|
QPalette::Link |
14 |
Цвет текста, используемый для не посещённых гиперссылок. По умолчанию цвет ссылки — Qt::blue. |
QPalette::LinkVisited |
15 |
Цвет текста, используемый для уже посещённых гиперссылок. По умолчанию цвет посещённой ссылки — Qt::magenta. |
Обратите внимание, что мы не используем роли Link и LinkVisited при отображении форматированного текста в Qt, и рекомендуем использовать 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::NoRole |
17 |
Нет роли; эта специальная роль часто используется для указания, что роль не была назначена. |
Документация по членам-функциям
QPalette::QPalette(QPalette &&other)
Перемещающее создание экземпляра QPalette, позволяющее ему указывать тот же объект, что и other.
После перемещения вы можете только присвоить или уничтожить other. Любая другая операция приведёт к неопределённому поведению.
Эта функция была добавлена в Qt 5.4.
QPalette::QPalette(const QPalette &p)
Создаёт копию p.
Этот конструктор быстрый благодаря неявной совместной работе.
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 QColor &button, const QColor &window)
Создаёт палитру из цвета button и цвета window. Другие цвета автоматически рассчитываются на основе этих цветов.
QPalette::QPalette(Qt::GlobalColor button)
Создаёт палитру из цвета button. Другие цвета автоматически рассчитываются на основе этого цвета. Window также будет цветом кнопки.
QPalette::QPalette(const QColor &button)
Создаёт палитру из цвета button. Другие цвета автоматически рассчитываются на основе этого цвета. Window также будет цветом кнопки.
QPalette::QPalette()
Создаёт объект палитры, который использует стандартную палитру приложения.
См. также QApplication::setPalette() и QApplication::palette().
QPalette &QPalette::operator=(QPalette &&other)
Перемещающее присваивание other данному экземпляру QPalette.
Эта функция была добавлена в Qt 5.2.
QPalette &QPalette::operator=(const QPalette &p)
Присваивает p этой палитре и возвращает ссылку на эту палитру.
Эта операция быстрая благодаря неявной совместной работе.
QPalette::~QPalette()
Уничтожает палитру.
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
Это перегруженная функция.
Возвращает кисть, установленную для заданной роли role в текущей ColorGroup.
См. также 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
Это перегруженная функция.
Возвращает цвет, установленный для заданной роли role в текущей ColorGroup.
См. также 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
Возвращает true, если ColorGroup cg и ColorRole cr были ранее установлены в этой палитре; в противном случае возвращает false.
Эта функция была добавлена в Qt 4.2.
См. также setBrush().
bool QPalette::isCopyOf(const QPalette &p) const
Возвращает true если эта палитра и p являются копиями друг друга, т.е. одна из них была создана как копия другой и ни одна из них не была затем изменена; в противном случае возвращает false. Это значительно строже, чем равенство.
См. также operator=() и operator==().
bool QPalette::isEqual(QPalette::ColorGroup cg1, QPalette::ColorGroup cg2) const
Возвращает true (обычно быстро), если цветовая группа cg1 равна cg2; в противном случае возвращает false.
const QBrush &QPalette::light() const
Возвращает кисть светлого цвета текущей цветовой группы.
См. также ColorRole и brush().
const QBrush &QPalette::link() const
Возвращает кисть цвета текста не посещенной ссылки текущей цветовой группы.
См. также 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. Мы по-прежнему поддерживаем это поведение по умолчанию, если вы не зададите свою кисть. Можно вернуть исходный цвет текста-заполнителя, задав в качестве кисти-заполнителя специальный конструктор по умолчанию QBrush.
Эта функция была добавлена в Qt 5.12.
См. также ColorRole и brush().
QPalette QPalette::resolve(const QPalette &other) const
Возвращает новую QPalette, которая является объединением этого экземпляра и other. Цветовые роли, заданные в этом экземпляре, имеют приоритет.
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().
void QPalette::swap(QPalette &other)
Меняет местами этот экземпляр палитры с other. Эта функция очень быстрая и никогда не терпит неудачу.
Эта функция была добавлена в Qt 5.0.
const QBrush &QPalette::text() const
Возвращает кисть переднего плана текста текущей цветовой группы.
См. также ColorRole и brush().
const QBrush &QPalette::toolTipBase() const
Возвращает кисть базового цвета всплывающей подсказки текущей цветовой группы. Эта кисть используется QToolTip и QWhatsThis.
Примечание: Всплывающие подсказки используют неактивную цветовую группу QPalette, потому что всплывающие подсказки не являются активными окнами.
Эта функция была добавлена в Qt 4.4.
См. также ColorRole и brush().
const QBrush &QPalette::toolTipText() const
Возвращает кисть цвета текста всплывающей подсказки текущей цветовой группы. Эта кисть используется QToolTip и QWhatsThis.
Примечание: Всплывающие подсказки используют неактивную цветовую группу QPalette, потому что всплывающие подсказки не являются активными окнами.
Эта функция была добавлена в Qt 4.4.
См. также 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
Возвращает true (медленно), если эта палитра отличается от p; в противном случае возвращает false (обычно быстро).
Примечание: Текущая ColorGroup не учитывается при сравнении палитр.
См. также operator==().
END_OF_DOCUMENT_MARKERbool QPalette::operator==(const QPalette &p) const
Возвращает true (обычно быстро), если эта палитра равна p; в противном случае возвращает false (медленно).
Примечание: Текущая ColorGroup не учитывается при сравнении палитр.
См. также operator!=().
Связанные нечленные функции
QDataStream &QPalette::operator<<(QDataStream &s, const QPalette &p)
Записывает палитру, p в поток s и возвращает ссылку на поток.
См. также Формат операторов QDataStream.
QDataStream &QPalette::operator>>(QDataStream &s, QPalette &p)
Читает палитру из потока, s в палитру p, и возвращает ссылку на поток.
См. также Формат операторов QDataStream.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qpalette.html