Spec-Zone.ru › Qt 5.15

Класс QPalette

Класс QPalette содержит группы цветов для каждого состояния виджета. Подробнее...

Заголовок: #include <QPalette>
qmake: QT += gui
  • Список всех членов, включая унаследованные
  • Устаревшие члены

Публичные типы

перечисление ColorGroup { Disabled, Active, Inactive, Normal }
перечисление ColorRole { Window, Background, WindowText, Foreground, Base, …, NoRole }

Публичные функции

QPalette(QPalette &&other)
QPalette(const QPalette &p)
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 QColor &button, const QColor &window)
QPalette(Qt::GlobalColor button)
QPalette(const QColor &button)
QPalette()
QPalette & operator=(QPalette &&other)
QPalette & operator=(const QPalette &p)
~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
bool operator==(const QPalette &p) const

Связанные внешние члены

QDataStream & operator<<(QDataStream &s, const QPalette &p)
QDataStream & operator>>(QDataStream &s, QPalette &p)

Подробное описание

Палитра состоит из трёх групп цветов: Активный, Отключённый и Неактивный. Все виджеты 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 синоним для Активный

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. Подсказки используют неактивную группу цветов QPalette, потому что подсказки - не активные окна.
QPalette::ToolTipText 19 Используется в качестве цвета переднего плана для QToolTip и QWhatsThis. Подсказки используют неактивную группу цветов 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.
END_OF_DOCUMENT_MARKER

Обратите внимание, что в 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(QPalette &&other)

Создаёт экземпляр QPalette, привязанный к тому же объекту, на который указывает other.

После перемещения можно только присваивать значения или удалять other. Любые другие операции приведут к неопределённому поведению.

Эта функция была добавлена в Qt 5.4.

QPalette::QPalette(const QPalette &p)

Создаёт копию p.

Этот конструктор быстрый благодаря неявной совместной работе.

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 QColor &button, const QColor &window)

Создаёт палитру из цвета button и window. Другие цвета автоматически рассчитываются на основе этих цветов.

QPalette::QPalette(Qt::GlobalColor button)

Создаёт палитру из цвета button. Другие цвета автоматически рассчитываются на основе этого цвета. Window также будет цветом кнопки.

QPalette::QPalette(const QColor &button)

Создаёт палитру из цвета button. Другие цвета автоматически рассчитываются на основе этого цвета. Window также будет цветом кнопки.

QPalette::QPalette()

Создаёт объект палитры, использующий стандартную палитру приложения.

См. также QApplication::setPalette() и QApplication::palette().

QPalette &QPalette::operator=(QPalette &&other)

Перемещает содержимое other в текущий экземпляр QPalette.

Эта функция была добавлена в Qt 5.2.

QPalette &QPalette::operator=(const QPalette &p)

Присваивает p текущей палитре и возвращает ссылку на эту палитру.

Эта операция быстрая благодаря неявной совместной работе.

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, если группа цветов cg и роль 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)

Это перегруженная функция.

Устанавливает кисть в указанной цветовой группе, используемой для данной цветовой роли, на brush.

См. также brush(), setColor() и ColorRole.

void QPalette::setColor(QPalette::ColorGroup group, QPalette::ColorRole role, const QColor &color)

Устанавливает цвет в указанной цветовой группе, используемой для данной цветовой роли, на указанный сплошной цвет.

См. также setBrush(), color() и ColorRole.

void QPalette::setColor(QPalette::ColorRole role, const QColor &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==().

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.15/qpalette.html

Spec-Zone.ru

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