Класс 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(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 |
| 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 |
Связанные свободные функции
| 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 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::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. |
Обратите внимание, что при отрисовке форматированного текста в 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::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().
END_OF_DOCUMENT_MARKERconst QBrush &QPalette::linkVisited() const
Возвращает кисть текста посещённой ссылки текущей группы цветов.
См. также ColorRole и brush().
const QBrush &QPalette::mid() const
Возвращает кисть "mid" текущей группы цветов.
См. также ColorRole и brush().
const QBrush &QPalette::midlight() const
Возвращает кисть "midlight" текущей группы цветов.
См. также 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==().
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/archives/qt-5.11/qpalette.html