Spec-Zone.ru › Qt 5.9

Стили Qt

Стили Qt — мощный механизм, позволяющий настроить внешний вид виджетов помимо возможностей, предоставляемых наследованием от QStyle. Концепции, терминология и синтаксис стилей Qt сильно вдохновлены каскадными таблицами стилей (CSS) HTML http://www.w3.org/Style/CSS/, но адаптированы к миру виджетов.

Разделы:

  • Обзор
  • Синтаксис таблиц стилей
  • Интеграция с Qt Designer
  • Настройка виджетов Qt с помощью таблиц стилей
  • Справочник по таблицам стилей Qt
  • Примеры таблиц стилей Qt

Обзор

Таблицы стилей — это текстовые спецификации, которые можно задать для всего приложения с помощью QApplication::setStyleSheet() или для конкретного виджета (и его дочерних элементов) с помощью QWidget::setStyleSheet(). Если заданы несколько таблиц стилей на разных уровнях, Qt выводит эффективную таблицу стилей из всех заданных. Это называется каскадированием.

Например, следующая таблица стилей задаёт, что все QLineEdit должны использовать жёлтый цвет фона, а все QCheckBox — красный цвет текста:

QLineEdit { background: yellow }
QCheckBox { color: red }

Для такого рода настройки таблицы стилей намного мощнее, чем QPalette. Например, может показаться заманчивым установить роль QPalette::Button в красный для QPushButton, чтобы получить красную кнопку. Однако это не гарантировалось для всех стилей, так как авторы стилей ограничены рекомендациями разных платформ и (в Windows XP и macOS) родным механизмом темы.

Таблицы стилей позволяют выполнять все виды настроек, которые сложно или невозможно выполнить только с помощью QPalette. Если вам нужны жёлтые фоны для обязательных полей, красный текст для потенциально опасных кнопок или стильные флажки, ответ — таблицы стилей.

Таблицы стилей применяются поверх текущего стиля виджета, что означает, что ваши приложения будут выглядеть максимально приближенно к родным, но любые ограничения таблицы стилей будут учтены. В отличие от подгонки палитры, таблицы стилей гарантируют: если вы задаёте цвет фона QPushButton красным, вы можете быть уверены, что кнопка будет иметь красный фон во всех стилях и на всех платформах. Кроме того, Qt Designer предоставляет интеграцию с таблицами стилей, что позволяет легко просматривать эффекты таблицы стилей в разных стилях виджетов.

Кроме того, таблицы стилей могут использоваться для обеспечения уникального внешнего вида и ощущений для вашего приложения без необходимости наследования от QStyle. Например, вы можете указать произвольные изображения для радиокнопок и флажков, чтобы выделить их. Используя этот метод, вы также можете добиться незначительных настроек, которые обычно требуют наследования нескольких классов стилей, таких как указание подсказки стиля. Пример таблицы стилей, изображённый ниже, определяет две различные таблицы стилей, которые вы можете попробовать и изменять по своему усмотрению.

Тема кофе, работающая в Windows XP Тема Pagefold, работающая в Windows XP
Тема кофе, работающая в Ubuntu Linux Тема Pagefold, работающая в macOS

Когда активна таблица стилей, QStyle, возвращаемый методом QWidget::style(), является обёрткой «стиля таблицы стилей», а не платформенно-зависимым стилем. Обёртный стиль гарантирует, что любая активная таблица стилей учитывается, а в противном случае перенаправляет операции рисования на основной платформенно-зависимый стиль (например, QWindowsXPStyle в Windows XP).

Начиная с Qt 4.5, таблицы стилей Qt полностью поддерживают macOS.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/stylesheet.html

Spec-Zone.ru

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