Класс QPalette
Класс QPalette содержит группы цветов для каждого состояния виджета. Подробнее...
| Заголовок: | #include <QPalette> |
| qmake: | QT += gui |
Открытые типы
| перечисление | ColorGroup { Disabled, Active, Inactive, Normal } |
| перечисление | ColorRole { Window, Background, WindowText, Foreground, ..., NoRole } |
Публичные функции
| QPalette() | |
| QPalette(const QColor &button) | |
| QPalette(Qt::GlobalColor 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() | |
| const QBrush & | alternateBase() const |
| const QBrush & | base() const |
| const QBrush & | brightText() const |
| const QBrush & | brush(ColorGroup group, ColorRole role) const |
| const QBrush & | brush(ColorRole role) const |
| const QBrush & | button() const |
| const QBrush & | buttonText() const |
| qint64 | cacheKey() const |
| const QColor & | color(ColorGroup group, ColorRole role) const |
| const QColor & | color(ColorRole role) const |
| ColorGroup | currentColorGroup() const |
| const QBrush & | dark() const |
| const QBrush & | highlight() const |
| const QBrush & | highlightedText() const |
| bool | isBrushSet(ColorGroup cg, ColorRole cr) const |
| bool | isCopyOf(const QPalette &p) const |
| bool | isEqual(ColorGroup cg1, ColorGroup cg2) const |
| const QBrush & | light() const |
| const QBrush & | link() const |
| const QBrush & | linkVisited() const |
| const QBrush & | mid() const |
| const QBrush & | midlight() const |
| QPalette | resolve(const QPalette &other) const |
| void | setBrush(ColorRole role, const QBrush &brush) |
| void | setBrush(ColorGroup group, ColorRole role, const QBrush &brush) |
| void | setColor(ColorGroup group, ColorRole role, const QColor &color) |
| void | setColor(ColorRole role, const QColor &color) |
| void | setColorGroup(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(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=(const QPalette &p) |
| QPalette & | operator=(QPalette &&other) |
| bool | operator==(const QPalette &p) const |
Связанные нечленные функции
| QDataStream & | operator<<(QDataStream &s, const QPalette &p) |
| QDataStream & | operator>>(QDataStream &s, QPalette &p) |
Подробное описание
Класс QPalette содержит группы цветов для каждого состояния виджета.
Палитра состоит из трёх групп цветов: Активный, Отключённый и Неактивный. Все виджеты Qt содержат палитру и используют её для отрисовки. Это делает пользовательский интерфейс легко настраиваемым и поддерживает его согласованность.
Если вы создаёте новый виджет, настоятельно рекомендуем использовать цвета из палитры, а не жёстко кодировать конкретные цвета.
Группы цветов:
- Группа Активный используется для окна, имеющего фокус клавиатуры.
- Группа Неактивный используется для других окон.
- Группа Отключённый используется для виджетов (не окон), которые по какой-либо причине отключены.
Как активные, так и неактивные окна могут содержать отключённые виджеты. (Отключённые виджеты часто называют недоступными или серыми.)
В большинстве стилей Активный и Неактивный выглядят одинаково.
Цвета и кисти могут быть установлены для определённых ролей в любой из групп цветов палитры с помощью setColor() и setBrush(). Группа цветов содержит группу цветов, используемых виджетами для отрисовки. Рекомендуется, чтобы виджеты использовали роли группы цветов из палитры, такие как "фоновый" и "основной", а не буквальные цвета, такие как "красный" или "бирюзовый". Роли цветов перечислены и определены в документации ColorRole.
Настоятельно рекомендуется использовать стандартную палитру текущего стиля (возвращаемую QGuiApplication::palette()) и изменять её по необходимости. Виджеты Qt используют её при отрисовке.
Для изменения группы цветов вызываются функции setColor() и setBrush(), в зависимости от того, хотите ли вы чистый цвет или шаблон пиксельной картинки.
Также существуют соответствующие функции-получатели color() и brush(), а также часто используемая функция-удобство для получения ColorRole для текущей ColorGroup: window(), windowText(), base() и т. д.
Вы можете скопировать палитру, используя конструктор копирования, и проверить, являются ли две палитры идентичными, используя isCopyOf().
QPalette оптимизирована с использованием явной совместной памяти, поэтому передача объектов QPalette в качестве аргументов очень эффективна.
Предупреждение: Некоторые стили не используют палитру для всей отрисовки, например, если они используют собственные механизмы темы. Это относится к стилям Windows XP, Windows Vista и macOS.
См. также QApplication::setPalette(), QWidget::setPalette() и QColor.
Документация типов членов
перечисление QPalette::ColorGroup
| Постоянная | Значение | Описание |
|---|---|---|
QPalette::Disabled |
1 |
|
QPalette::Active |
0 |
|
QPalette::Inactive |
2 |
|
QPalette::Normal |
Active |
Синоним для Active |
enum QPalette::ColorRole
Перечисление ColorRole определяет различные символические роли цвета, используемые в современных графических интерфейсах.
Основные роли:
| Постоянная | Значение | Описание |
|---|---|---|
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::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()
Создаёт объект палитры, использующий стандартную палитру приложения.
См. также QApplication::setPalette() и QApplication::palette().
QPalette::QPalette(const QColor &button)
Создаёт палитру из цвета button. Другие цвета автоматически вычисляются на основе этого цвета. Window будет также цветом кнопки.
QPalette::QPalette(Qt::GlobalColor 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.
Этот конструктор быстрый благодаря неявной совместной работе.
QPalette::QPalette(QPalette &&other)
Создаёт экземпляр QPalette путём перемещения, делая его указателем на тот же объект, на который указывал other.
После перемещения можно только назначить или уничтожить other. Любая другая операция приведёт к неопределённому поведению.
Эта функция была добавлена в Qt 5.4.
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(ColorGroup group, ColorRole role) const
Возвращает кисть в указанной группе цветов group, используемую для заданной роли role.
См. также color(), setBrush() и ColorRole.
const QBrush &QPalette::brush(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(ColorGroup group, ColorRole role) const
Возвращает цвет в указанной группе цветов group, используемый для данной роли role.
См. также brush(), setColor() и ColorRole.
const QColor &QPalette::color(ColorRole role) const
Это перегруженная функция.
Возвращает цвет, установленный для данной роли role в текущей ColorGroup.
См. также brush() и ColorRole.
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(ColorGroup cg, 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(ColorGroup cg1, 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().
QPalette QPalette::resolve(const QPalette &other) const
Возвращает новый объект QPalette, атрибуты которого скопированы из other.
void QPalette::setBrush(ColorRole role, const QBrush &brush)
Устанавливает кисть для заданного цвета role на указанную кисть brush для всех групп в палитре.
См. также brush(), setColor() и ColorRole.
void QPalette::setBrush(ColorGroup group, ColorRole role, const QBrush &brush)
Это перегруженный метод.
Устанавливает кисть в указанной группе цветов group, используемую для заданного цвета role, на brush.
См. также brush(), setColor() и ColorRole.
void QPalette::setColor(ColorGroup group, ColorRole role, const QColor &color)
Устанавливает цвет в указанной группе цветов group, используемый для заданного цвета role, на указанный твёрдый цвет color.
См. также setBrush(), color() и ColorRole.
void QPalette::setColor(ColorRole role, const QColor &color)
Это перегруженный метод.
Устанавливает цвет, используемый для заданного цвета role во всех группах цветов, на указанный твёрдый цвет color.
См. также brush(), setColor() и ColorRole.
void QPalette::setColorGroup(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(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().
QPalette::operator QVariant() const
Возвращает палитру как QVariant
bool QPalette::operator!=(const QPalette &p) const
Возвращает true (медленно), если эта палитра отличается от p; в противном случае возвращает false (обычно быстро).
Примечание: Текущая группа цветов ColorGroup не учитывается при сравнении палитр
См. также operator==().
QPalette &QPalette::operator=(const QPalette &p)
Присваивает p этой палитре и возвращает ссылку на эту палитру.
Эта операция выполняется быстро благодаря неявной совместной работе.
QPalette &QPalette::operator=(QPalette &&other)
Перемещает присваивание other в этот объект QPalette.
Этот метод был добавлен в Qt 5.2.
bool QPalette::operator==(const QPalette &p) const
Возвращает true (обычно быстро), если эта палитра равна p; в противном случае возвращает false (медленно).
Примечание: Текущая группа цветов ColorGroup не учитывается при сравнении палитр
См. также operator!=().
Связанные нечлен-функции
QDataStream &operator<<(QDataStream &s, const QPalette &p)
Записывает палитру p в поток s и возвращает ссылку на поток.
См. также Формат операторов QDataStream.
QDataStream &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.9/qpalette.html