Spec-Zone.ru › Qt 5.15

Стилизация

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

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/qt-5.14/qwidget-styling.html

Spec-Zone.ru

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