Spec-Zone.ru › Qt 5.11

Класс 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

Color Roles

Перечисление 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_MARKER

const 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API