StyleBoxFlat
继承: StyleBox
< Resource
< RefCounted
< Object
A customizable StyleBox
that doesn't use a texture.
描述
By configuring various properties of this style box, you can achieve many common looks without the need of a texture. This includes optionally rounded borders, antialiasing, shadows, and skew.
Setting corner radius to high values is allowed. As soon as corners overlap, the stylebox will switch to a relative system:
height = 30
corner_radius_top_left = 50
corner_radius_bottom_left = 100
The relative system now would take the 1:2 ratio of the two left corners to calculate the actual corner width. Both corners added will never be more than the height. Result:
corner_radius_top_left: 10
corner_radius_bottom_left: 20
属性
方法
int | get_border_width ( margin: Side ) const1 |
int | get_border_width_min ( ) const1 |
int | get_corner_radius ( corner: Corner ) const1 |
float | get_expand_margin ( margin: Side ) const1 |
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
Antialiasing draws a small ring around the edges, which fades to transparency. As a result, edges look much smoother. This is only noticeable when using rounded corners or skew
.
Note: When using beveled corners with 45-degree angles (corner_detail
= 1), it is recommended to set anti_aliasing
to false
to ensure crisp visuals and avoid possible visual glitches.
float
anti_aliasing_size = 1.0
This changes the size of the antialiasing effect. 1.0
is recommended for an optimal result at 100% scale, identical to how rounded rectangles are rendered in web browsers and most vector drawing software.
Note: Higher values may produce a blur effect but can also create undesired artifacts on small boxes with large-radius corners.
Color
bg_color = Color(0.6, 0.6, 0.6, 1)
The background color of the stylebox.
bool
border_blend = false
If true
, the border will fade into the background color.
Color
border_color = Color(0.8, 0.8, 0.8, 1)
Sets the color of the border.
int
border_width_bottom = 0
Border width for the bottom border.
int
border_width_left = 0
Border width for the left border.
int
border_width_right = 0
Border width for the right border.
int
border_width_top = 0
Border width for the top border.
int
corner_detail = 8
This sets the number of vertices used for each corner. Higher values result in rounder corners but take more processing power to compute. When choosing a value, you should take the corner radius (set_corner_radius_all
) into account.
For corner radii less than 10, 4
or 5
should be enough. For corner radii less than 30, values between 8
and 12
should be enough.
A corner detail of 1
will result in chamfered corners instead of rounded corners, which is useful for some artistic effects.
int
corner_radius_bottom_left = 0
void
set_corner_radius ( corner: Corner, radius:int
)int
get_corner_radius ( corner: Corner ) const1
The bottom-left corner's radius. If 0
, the corner is not rounded.
int
corner_radius_bottom_right = 0
void
set_corner_radius ( corner: Corner, radius:int
)int
get_corner_radius ( corner: Corner ) const1
The bottom-right corner's radius. If 0
, the corner is not rounded.
int
corner_radius_top_left = 0
void
set_corner_radius ( corner: Corner, radius:int
)int
get_corner_radius ( corner: Corner ) const1
The top-left corner's radius. If 0
, the corner is not rounded.
int
corner_radius_top_right = 0
void
set_corner_radius ( corner: Corner, radius:int
)int
get_corner_radius ( corner: Corner ) const1
The top-right corner's radius. If 0
, the corner is not rounded.
bool
draw_center = true
Toggles drawing of the inner part of the stylebox.
float
expand_margin_bottom = 0.0
void
set_expand_margin ( margin: Side, size:float
)float
get_expand_margin ( margin: Side ) const1
Expands the stylebox outside of the control rect on the bottom edge. Useful in combination with border_width_bottom
to draw a border outside the control rect.
Note: Unlike StyleBox.content_margin_bottom
, expand_margin_bottom
does not affect the size of the clickable area for Control
s. This can negatively impact usability if used wrong, as the user may try to click an area of the StyleBox that cannot actually receive clicks.
float
expand_margin_left = 0.0
void
set_expand_margin ( margin: Side, size:float
)float
get_expand_margin ( margin: Side ) const1
Expands the stylebox outside of the control rect on the left edge. Useful in combination with border_width_left
to draw a border outside the control rect.
Note: Unlike StyleBox.content_margin_left
, expand_margin_left
does not affect the size of the clickable area for Control
s. This can negatively impact usability if used wrong, as the user may try to click an area of the StyleBox that cannot actually receive clicks.
float
expand_margin_right = 0.0
void
set_expand_margin ( margin: Side, size:float
)float
get_expand_margin ( margin: Side ) const1
Expands the stylebox outside of the control rect on the right edge. Useful in combination with border_width_right
to draw a border outside the control rect.
Note: Unlike StyleBox.content_margin_right
, expand_margin_right
does not affect the size of the clickable area for Control
s. This can negatively impact usability if used wrong, as the user may try to click an area of the StyleBox that cannot actually receive clicks.
float
expand_margin_top = 0.0
void
set_expand_margin ( margin: Side, size:float
)float
get_expand_margin ( margin: Side ) const1
Expands the stylebox outside of the control rect on the top edge. Useful in combination with border_width_top
to draw a border outside the control rect.
Note: Unlike StyleBox.content_margin_top
, expand_margin_top
does not affect the size of the clickable area for Control
s. This can negatively impact usability if used wrong, as the user may try to click an area of the StyleBox that cannot actually receive clicks.
Color
shadow_color = Color(0, 0, 0, 0.6)
The color of the shadow. This has no effect if shadow_size
is lower than 1.
Vector2
shadow_offset = Vector2(0, 0)
The shadow offset in pixels. Adjusts the position of the shadow relatively to the stylebox.
int
shadow_size = 0
The shadow size in pixels.
Vector2
skew = Vector2(0, 0)
If set to a non-zero value on either axis, skew
distorts the StyleBox horizontally and/or vertically. This can be used for "futuristic"-style UIs. Positive values skew the StyleBox towards the right (X axis) and upwards (Y axis), while negative values skew the StyleBox towards the left (X axis) and downwards (Y axis).
Note: To ensure text does not touch the StyleBox's edges, consider increasing the StyleBox
's content margin (see StyleBox.content_margin_bottom
). It is preferable to increase the content margin instead of the expand margin (see expand_margin_bottom
), as increasing the expand margin does not increase the size of the clickable area for Control
s.
方法说明
int
get_border_width ( margin: Side ) const1
Returns the specified Side's border width.
int
get_border_width_min ( ) const1
Returns the smallest border width out of all four borders.
int
get_corner_radius ( corner: Corner ) const1
Returns the given corner
's radius. See Corner for possible values.
float
get_expand_margin ( margin: Side ) const1
Returns the size of the specified Side's expand margin.
void
set_border_width ( margin: Side, width: int
)
Sets the specified Side's border width to width
pixels.
void
set_border_width_all ( width: int
)
Sets the border width to width
pixels for all sides.
void
set_corner_radius ( corner: Corner, radius: int
)
Sets the corner radius to radius
pixels for the given corner
. See Corner for possible values.
void
set_corner_radius_all ( radius: int
)
Sets the corner radius to radius
pixels for all corners.
void
set_expand_margin ( margin: Side, size: float
)
Sets the expand margin to size
pixels for the specified Side.
void
set_expand_margin_all ( size: float
)
Sets the expand margin to size
pixels for all sides.
本方法通常需要用户覆盖才能生效。
本方法无副作用,不会修改该实例的任何成员变量。
本方法除了能接受在此处描述的参数外,还能够继续接受任意数量的参数。
本方法用于构造某个类型。
调用本方法无需实例,可直接使用类名进行调用。
本方法描述的是使用本类型作为左操作数的有效运算符。
这个值是由下列位标志构成位掩码的整数。
无返回值。