Spec-Zone.ru › Qt 5.11

Стилизация

Встроенные виджеты Qt используют класс QStyle для почти всех операций отрисовки. QStyle — это абстрактный базовый класс, который инкапсулирует внешний вид графического интерфейса пользователя (GUI), и его можно использовать для того, чтобы виджеты выглядели точно так же, как эквивалентные системные виджеты, или для придания виджетам пользовательского внешнего вида.

Qt предоставляет набор подклассов QStyle, которые эмулируют родной внешний вид различных платформ, поддерживаемых Qt (QWindowsStyle, QMacStyle и т. д.). Эти стили встроенные в модуль Qt GUI; другие стили могут быть доступны с помощью механизма плагинов Qt.

Большинство функций для отрисовки элементов стиля принимают четыре аргумента:

  • значение перечисления, определяющее, какой графический элемент нужно отрисовать
  • объект QStyleOption, определяющий, как и где рендерить этот элемент
  • объект QPainter, который должен использоваться для отрисовки элемента
  • объект QWidget, на котором выполняется отрисовка (необязательно)

Стиль получает всю необходимую информацию для рендеринга графического элемента из класса QStyleOption. Виджет передаётся в качестве последнего аргумента, если стиль нуждается в нём для выполнения специальных эффектов (например, анимированных кнопок по умолчанию в macOS), но это необязательно. Фактически, QStyle можно использовать для рисования на любом устройстве отрисовки (не только на виджетах), в этом случае аргумент виджета — нулевой указатель.

Система отрисовки также предоставляет класс QStylePainter, который наследуется от QPainter. QStylePainter — это удобный класс для рисования элементов QStyle внутри виджета, и он расширяет QPainter набором функций высокого уровня для рисования, реализованных поверх API QStyle. Преимущество использования QStylePainter заключается в том, что списки параметров становятся значительно короче.

QIcon

Класс QIcon предоставляет масштабируемые значки в различных режимах и состояниях.

QIcon может генерировать пиксельмапы, отражающие состояние, режим и размер значка. Эти пиксельмапы генерируются из набора пиксельмап, доступных для значка, и используются виджетами Qt для отображения значка, представляющего определённое действие.

Отрисовка объекта QIcon обрабатывается классом QIconEngine. Каждый значок имеет соответствующий движок значка, который отвечает за отрисовку значка с запрошенным размером, режимом и состоянием.

Дополнительную информацию о стилизации виджетов и их внешнем виде см. в разделе Стили и стилизованные виджеты.

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

Spec-Zone.ru

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