StyleBoxFlat

Наследует: StyleBox < Resource < RefCounted < Object

Настраиваемый StyleBox, не использующий текстуру.

Описание

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

Установка радиуса угла на высокие значения допускается. Как только углы перекрываются, stylebox переключается на относительную систему:

height = 30
corner_radius_top_left = 50
corner_radius_bottom_left = 100

Относительная система теперь будет использовать соотношение 1:2 двух левых углов для расчета фактической ширины угла. Оба сложенных угла никогда не будут больше высоты. Результат:

corner_radius_top_left: 10
corner_radius_bottom_left: 20

Свойства

bool

anti_aliasing

true

float

anti_aliasing_size

1.0

Color

bg_color

Color(0.6, 0.6, 0.6, 1)

bool

border_blend

false

Color

border_color

Color(0.8, 0.8, 0.8, 1)

int

border_width_bottom

0

int

border_width_left

0

int

border_width_right

0

int

border_width_top

0

int

corner_detail

8

int

corner_radius_bottom_left

0

int

corner_radius_bottom_right

0

int

corner_radius_top_left

0

int

corner_radius_top_right

0

bool

draw_center

true

float

expand_margin_bottom

0.0

float

expand_margin_left

0.0

float

expand_margin_right

0.0

float

expand_margin_top

0.0

Color

shadow_color

Color(0, 0, 0, 0.6)

Vector2

shadow_offset

Vector2(0, 0)

int

shadow_size

0

Vector2

skew

Vector2(0, 0)

Методы

int

get_border_width(margin: Side) const

int

get_border_width_min() const

int

get_corner_radius(corner: Corner) const

float

get_expand_margin(margin: Side) const

void

set_border_width(margin: Side, width: int)

void

set_border_width_all(width: int)

void

set_corner_radius(corner: Corner, radius: int)

void

set_corner_radius_all(radius: int)

void

set_expand_margin(margin: Side, size: float)

void

set_expand_margin_all(size: float)


Описания свойств

bool anti_aliasing = true 🔗

  • void set_anti_aliased(value: bool)

  • bool is_anti_aliased()

Сглаживание рисует небольшое кольцо вокруг краев, которое постепенно переходит в прозрачность. В результате края выглядят намного более гладкими. Это заметно только при использовании скругленных углов или skew.

Примечание: При использовании скошенных углов с углами в 45 градусов (corner_detail = 1) рекомендуется установить anti_aliasing на false, чтобы обеспечить четкость изображения и избежать возможных визуальных сбоев.


float anti_aliasing_size = 1.0 🔗

  • void set_aa_size(value: float)

  • float get_aa_size()

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

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


Color bg_color = Color(0.6, 0.6, 0.6, 1) 🔗

  • void set_bg_color(value: Color)

  • Color get_bg_color()

Цвет фона stylebox.


bool border_blend = false 🔗

  • void set_border_blend(value: bool)

  • bool get_border_blend()

Если true, граница будет сливаться с цветом фона.


Color border_color = Color(0.8, 0.8, 0.8, 1) 🔗

  • void set_border_color(value: Color)

  • Color get_border_color()

Устанавливает цвет границы.


int border_width_bottom = 0 🔗

  • void set_border_width(margin: Side, width: int)

  • int get_border_width(margin: Side) const

Ширина нижней границы.


int border_width_left = 0 🔗

  • void set_border_width(margin: Side, width: int)

  • int get_border_width(margin: Side) const

Ширина левой границы.


int border_width_right = 0 🔗

  • void set_border_width(margin: Side, width: int)

  • int get_border_width(margin: Side) const

Ширина границы для правой границы.


int border_width_top = 0 🔗

  • void set_border_width(margin: Side, width: int)

  • int get_border_width(margin: Side) const

Ширина верхней границы.


int corner_detail = 8 🔗

  • void set_corner_detail(value: int)

  • int get_corner_detail()

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

Для радиусов угла менее 10 должно быть достаточно 4 или 5. Для радиусов угла менее 30 должно быть достаточно значений между 8 и 12.

Детализация угла 1 приведет к скошенным углам вместо скругленных, что полезно для некоторых художественных эффектов.


int corner_radius_bottom_left = 0 🔗

  • void set_corner_radius(corner: Corner, radius: int)

  • int get_corner_radius(corner: Corner) const

Радиус нижнего левого угла. Если 0, угол не закруглен.


int corner_radius_bottom_right = 0 🔗

  • void set_corner_radius(corner: Corner, radius: int)

  • int get_corner_radius(corner: Corner) const

Радиус нижнего правого угла. Если 0, угол не закруглен.


int corner_radius_top_left = 0 🔗

  • void set_corner_radius(corner: Corner, radius: int)

  • int get_corner_radius(corner: Corner) const

Радиус верхнего левого угла. Если 0, угол не закруглен.


int corner_radius_top_right = 0 🔗

  • void set_corner_radius(corner: Corner, radius: int)

  • int get_corner_radius(corner: Corner) const

Радиус верхнего правого угла. Если 0, угол не закруглен.


bool draw_center = true 🔗

  • void set_draw_center(value: bool)

  • bool is_draw_center_enabled()

Включает/выключает отрисовку внутренней части stylebox.


float expand_margin_bottom = 0.0 🔗

  • void set_expand_margin(margin: Side, size: float)

  • float get_expand_margin(margin: Side) const

Расширяет stylebox за пределы прямоугольника управления на нижнем крае. Полезно в сочетании с border_width_bottom для рисования границы за пределами прямоугольника управления.

Примечание: В отличие от StyleBox.content_margin_bottom, expand_margin_bottom не влияет на размер области нажатия для Control. Это может негативно повлиять на удобство использования при неправильном использовании, так как пользователь может попытаться нажать на область StyleBox, которая фактически не может получать щелчки.


float expand_margin_left = 0.0 🔗

  • void set_expand_margin(margin: Side, size: float)

  • float get_expand_margin(margin: Side) const

Расширяет stylebox за пределы прямоугольника управления на левом краю. Полезно в сочетании с border_width_left для рисования границы за пределами прямоугольника управления.

Примечание: В отличие от StyleBox.content_margin_left, expand_margin_left не влияет на размер области нажатия для Control. Это может негативно повлиять на удобство использования при неправильном использовании, так как пользователь может попытаться нажать на область StyleBox, которая фактически не может получать щелчки.


float expand_margin_right = 0.0 🔗

  • void set_expand_margin(margin: Side, size: float)

  • float get_expand_margin(margin: Side) const

Расширяет stylebox за пределы прямоугольника управления на правом краю. Полезно в сочетании с border_width_right для рисования границы за пределами прямоугольника управления.

Примечание: В отличие от StyleBox.content_margin_right, expand_margin_right не влияет на размер области нажатия для Control. Это может негативно повлиять на удобство использования при неправильном использовании, так как пользователь может попытаться нажать на область StyleBox, которая фактически не может получать щелчки.


float expand_margin_top = 0.0 🔗

  • void set_expand_margin(margin: Side, size: float)

  • float get_expand_margin(margin: Side) const

Расширяет stylebox за пределы прямоугольника управления на верхнем крае. Полезно в сочетании с border_width_top для рисования границы за пределами прямоугольника управления.

Примечание: В отличие от StyleBox.content_margin_top, expand_margin_top не влияет на размер области нажатия для Control. Это может негативно повлиять на удобство использования при неправильном использовании, так как пользователь может попытаться нажать на область StyleBox, которая фактически не может получать щелчки.


Color shadow_color = Color(0, 0, 0, 0.6) 🔗

  • void set_shadow_color(value: Color)

  • Color get_shadow_color()

Цвет тени. Это не имеет никакого эффекта, если shadow_size меньше 1.


Vector2 shadow_offset = Vector2(0, 0) 🔗

Смещение тени в пикселях. Регулирует положение тени относительно stylebox.


int shadow_size = 0 🔗

  • void set_shadow_size(value: int)

  • int get_shadow_size()

Размер тени в пикселях.


Vector2 skew = Vector2(0, 0) 🔗

Если установлено ненулевое значение на любой из осей, skew искажает StyleBox по горизонтали и/или вертикали. Это можно использовать для пользовательских интерфейсов в «футуристическом» стиле. Положительные значения наклоняют StyleBox вправо (ось X) и вверх (ось Y), а отрицательные значения наклоняют StyleBox влево (ось X) и вниз (ось Y).

Примечание: Чтобы текст не касался краев StyleBox, рассмотрите возможность увеличения поля содержимого StyleBox (см. StyleBox.content_margin_bottom). Предпочтительно увеличить поле содержимого вместо поля расширения (см. expand_margin_bottom), поскольку увеличение поля расширения не увеличивает размер области нажатия для Control.


Описания метода

int get_border_width(margin: Side) const 🔗

Возвращает указанную ширину границы Side.


int get_border_width_min() const 🔗

Возвращает наименьшую ширину границы из всех четырех границ.


int get_corner_radius(corner: Corner) const 🔗

Возвращает радиус заданного corner.


float get_expand_margin(margin: Side) const 🔗

Возвращает размер указанного поля расширения Side.


void set_border_width(margin: Side, width: int) 🔗

Устанавливает ширину границы указанного элемента Side на width пикселей.


void set_border_width_all(width: int) 🔗

Устанавливает ширину границы на width пикселей для всех сторон.


void set_corner_radius(corner: Corner, radius: int) 🔗

Устанавливает радиус угла равным radius пикселей для заданного corner.


void set_corner_radius_all(radius: int) 🔗

Устанавливает радиус угла равным radius пикселей для всех углов.


void set_expand_margin(margin: Side, size: float) 🔗

Устанавливает поле расширения на size пикселей для указанной Side.


void set_expand_margin_all(size: float) 🔗

Устанавливает поле расширения на size пикселей для всех сторон.