Spec-Zone.ru › Qt

Настройка виджетов Qt с помощью стилей

При использовании стилей каждый виджет рассматривается как прямоугольник с четырьмя концентрическими прямоугольниками: прямоугольник отступа, прямоугольник границы, прямоугольник отступа и прямоугольник содержимого. Модель прямоугольника описывает это более подробно.

Модель прямоугольника

Четыре концентрических прямоугольника концептуально отображаются следующим образом:

  • Отступ находится за пределами границы.
  • Граница отображается между отступом и отступом.
  • Отступ находится внутри границы, между границей и фактическим содержимым.
  • Содержимое — это то, что остается от исходного виджета или подэлемента после удаления отступа, границы и отступа.

Свойства отступ, ширина границы и отступ по умолчанию равны нулю. В этом случае все четыре прямоугольника (margin, border, padding, и content) точно совпадают.

Вы можете указать фон для виджета, используя свойство фон изображения. По умолчанию фон изображения рисуется только для области внутри границы. Это можно изменить, используя свойство обрезания фона. Вы можете использовать повторение фона и источник фона для управления повторением и источником фонового изображения.

Изображение фона не масштабируется с размером виджета. Чтобы обеспечить «кожу» или фон, который масштабируется вместе с размером виджета, необходимо использовать изображение границы. Поскольку свойство border-image предоставляет альтернативный фон, при указании border-image не обязательно указывать изображение фона. В случае, когда оба они указаны, border-image рисуется поверх background-image.

Кроме того, можно использовать свойство изображение для рисования изображения поверх border-image. Указанное изображение не повторяется и не растягивается, а если его размер не соответствует размеру виджета, его выравнивание задаётся свойством положение изображения. В отличие от background-image и border-image, в свойстве image можно указать SVG, в этом случае изображение масштабируется автоматически в соответствии с размером виджета.

Этапы отрисовки правила следующие:

  • Установить обрезку для всей операции отрисовки (радиус границы)
  • Отобразить фон (фон изображения)
  • Отобразить границу (изображение границы, граница)
  • Отобразить наложение изображения (изображение)

Подэлементы

Виджет рассматривается как иерархия (дерево) подэлементов, нарисованных друг над другом. Например, QComboBox рисует подэлемент раскрывающегося списка, за которым следует подэлемент стрелки вниз. Таким образом, QComboBox отображается следующим образом:

  • Отобразить правило QComboBox { }
  • Отобразить правило QComboBox::drop-down { }
  • Отобразить правило QComboBox::down-arrow { }

Подэлементы имеют родительско-детские отношения. В случае QComboBox, родителем стрелки вниз является раскрывающийся список, а родителем раскрывающегося списка — сам виджет. Подэлементы размещаются внутри родительского элемента с помощью свойств положение подэлемента и источник подэлемента.

После размещения подэлементы можно стилизовать, используя модель прямоугольника.

Примечание: В случае с такими сложными виджетами, как QComboBox и QScrollBar, если один из свойств или подэлементов настраивается, все другие свойства или подэлементы также должны быть настроены.

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

Spec-Zone.ru

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