Стилизация
Встроенные виджеты 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-6.2/qwidget-styling.html