Стиль
Встроенные виджеты 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.9/qwidget-styling.html