Класс QPalette
Класс QPalette содержит группы цветов для каждого состояния виджета. Подробнее...
| Заголовок: | #include <QPalette> |
| qmake: | QT += gui |
Открытые типы
| Перечисление | ColorGroup { Выключено, Активно, Неактивно, Нормально } |
| Перечисление | ColorRole { Окно, Фон, Текст окна, Передний план, ..., НетРоли } |
Общедоступные функции
| 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(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=(const QPalette &p) |
| QPalette & | operator=(QPalette &&other) |
| bool | operator==(const QPalette &p) const |
Статические общедоступные члены
| const QMetaObject | staticMetaObject |
Связанные нечлены
| QDataStream & | operator<<(QDataStream &s, const QPalette &p) |
| QDataStream & | operator>>(QDataStream &s, QPalette &p) |
Подробное описание
Класс QPalette содержит группы цветов для каждого состояния виджета.
Палитра состоит из трёх групп цветов: Активная, Отключённая и Неактивная. Все виджеты в 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.
Документация по типам членов
enum 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::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()
Создает объект палитры, использующий стандартную палитру приложения.
См. также 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(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)
Это перегруженная функция.
Устанавливает кисть в указанной цветовой группе, используемой для данного цвета role, на brush.
См. также brush(), setColor() и ColorRole.
void QPalette::setColor(QPalette::ColorGroup group, QPalette::ColorRole role, const QColor &color)
Устанавливает цвет в указанной цветовой группе, используемой для данного цвета role, на указанный сплошной цвет.
См. также setBrush(), color() и ColorRole.
void QPalette::setColor(QPalette::ColorRole role, const QColor &color)
Это перегруженная функция.
Устанавливает цвет, используемый для данного цвета role во всех цветовых группах, на указанный сплошной цвет.
См. также 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==().
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.12/qpalette.html