Spec-Zone.ru › Qt 5.9

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

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.

Обратите внимание, что роли 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

Spec-Zone.ru

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