Spec-Zone.ru › Qt 5.11

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

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

Модель области

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

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

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

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

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

Кроме того, свойство изображение может использоваться для отображения изображения поверх граница-изображение. Указанное изображение не повторяется и не растягивается, и когда его размер не соответствует размеру виджета, его выравнивание задаётся с помощью свойства изображение-позиция. В отличие от фона-изображение и границы-изображение, вы можете указать 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/archives/qt-5.11/stylesheet-customizing.html

Spec-Zone.ru

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