Документация Engee

GridLayout

Страница в процессе перевода.

Все элементы, добавляемые в сцену, должны помещаться в окно, заполнять доступное пространство и аккуратно выравниваться относительно друг друга. Для этого служат объекты GridLayout, которые определяют ширину строк и столбцов с учетом элементов содержимого.

У элементов содержимого есть внутренняя ширина и высота, а также четыре выступа, которые определяют то, насколько далеко вспомогательное содержимое (например, дополнительные элементы осей) выступает за пределы основной части. Выступы должны заполнять промежутки между ячейками сетки и имеют смысл не для каждого элемента. В первую очередь они предназначены для выравнивания осей вдоль их линий.

Каждый элемент макета должен иметь несколько наблюдаемых объектов, которые поддерживают вычисления макета.

  • Предлагаемый ограничивающий прямоугольник

  • Вычисленный ограничивающий прямоугольник

  • Автоматически определенные ширина и высота

  • Вычисленные ширина и высота

  • Выступы

  • Атрибуты размера

  • Атрибуты выравнивания

Предлагаемый ограничивающий прямоугольник

Это ограничивающий прямоугольник, который предлагается для элемента. В зависимости от настроек элемента он может идеально выравниваться по этому ограничивающему прямоугольнику или, если его фактические размеры отличаются, выравниваться внутри него. Например, внутри большого предлагаемого ограничивающего прямоугольника небольшой элемент Label может выравниваться по левому верхнему краю.

Вычисленный ограничивающий прямоугольник

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

Автоматически определенные ширина и высота

Некоторые элементы могут вычислять собственный размер с учетом своих настроек. Например, Label может вычислять ограничивающий прямоугольник своего текста. Если у объекта нет содержимого, например как у Axis, автоматически определенная ширина или высота будет равна nothing.

Вычисленные ширина и высота

Вычисленные ширина и высота — это размер, который элемент сообщает объекту GridLayout, элементом содержимого которого он является. Они могут отличаться от автоматически определенного размера, если этот размер не должен сообщаться родительскому макету. Это полезно, например, если столбец не должен сжиматься до размера Label.

Выступы

Это четыре значения, которые сообщают объекту GridLayout величину промежутка за пределами основной области элемента. В стандартной конфигурации Axis это будут заголовок вверху, ось y слева и ось x внизу.

Атрибуты размера

Пользователь может указывать высоту и ширину элемента различными способами. Эти значения в сочетании с предложенным ограничивающим прямоугольником и автоматически определенным размером используются для вычисления окончательного размера объекта, а также определяют то, как макет реагирует на размер элемента (соответственно ширину либо высоту).

  • Fixed или Real: размер всегда фиксированный, независимо от предлагаемых макетом значений. Объект GridLayout может автоматически подгонять размеры столбцов под этот размер.

  • Relative: размер является долей предложенного размера. Объект GridLayout не может автоматически подгонять размеры столбцов под этот размер.

  • Auto: размер равен автоматически определенному размеру, если он не равен nothing. Объект GridLayout может автоматически подгонять размеры под этот размер, если он не равен nothing.

  • nothing: размер равен предложенному размеру. Объект GridLayout не может автоматически подгонять размеры столбцов под этот размер.

Для всех размеров, к которым GridLayout может автоматически подстраиваться, можно запретить это поведение, присвоив атрибуту tellheight или tellwidth элемента значение false.

Атрибуты выравнивания

Пользователь может указать, как элемент должен выравниваться относительно предложенного ограничивающего прямоугольника, если он не того же размера (в этом случае выравнивание не влияет на размещение). В настоящее время возможные значения для выравнивания по горизонтали — :left, :right и :center, а для выравнивания по вертикали — :top, :bottom и :center.