StyleBoxFlat

继承: StyleBox < Resource < RefCounted < Object

不使用纹理的可自定义StyleBox

描述

通过配置此样式框的各种属性,无需纹理即可实现许多常见外观。这包括可选的圆角边框、抗锯齿、阴影和倾斜。

允许将角半径设置为较高的值。一旦角重叠,样式框将切换到相对系统:

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) 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%比例的最佳结果,与Web浏览器和大多数矢量绘图软件中呈现圆角矩形的方式相同。

注意:较高的值可能会产生模糊效果,但也可能会在具有大半径角的小盒子上创建不需要的伪影。


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

  • void set_bg_color(value: Color)

  • Color get_bg_color()

样式框的背景颜色。


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的角半径,45应该足够了。对于小于30的角半径,812之间的值应该足够了。

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()

切换样式框内部的绘图。


float expand_margin_bottom = 0.0 🔗

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

  • float get_expand_margin(margin: Side) const

将样式框展开到底部边缘控件矩形之外。与border_width_bottom结合使用可用于在控件矩形之外绘制边框。

注意:StyleBox.content_margin_bottom不同,expand_margin_bottom影响Controls的可点击区域的大小。如果使用错误,这可能会对可用性产生负面影响,因为用户可能会尝试单击StyleBox中无法实际接收点击的区域。


float expand_margin_left = 0.0 🔗

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

  • float get_expand_margin(margin: Side) const

将样式框展开到左侧控件矩形之外。与border_width_left结合使用可用于在控件矩形之外绘制边框。

注意:StyleBox.content_margin_left不同,expand_margin_left影响Controls的可点击区域的大小。如果使用错误,这可能会对可用性产生负面影响,因为用户可能会尝试单击StyleBox中无法实际接收点击的区域。


float expand_margin_right = 0.0 🔗

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

  • float get_expand_margin(margin: Side) const

将样式框展开到右边缘控件矩形之外。与border_width_right结合使用可用于在控件矩形之外绘制边框。

注意:StyleBox.content_margin_right不同,expand_margin_right影响Controls的可点击区域的大小。如果使用错误,这可能会对可用性产生负面影响,因为用户可能会尝试单击StyleBox中无法实际接收点击的区域。


float expand_margin_top = 0.0 🔗

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

  • float get_expand_margin(margin: Side) const

将样式框展开到控件矩形顶部边缘之外。与border_width_top结合使用可用于在控件矩形之外绘制边框。

注意:StyleBox.content_margin_top不同,expand_margin_top影响Controls的可点击区域的大小。如果使用错误,这可能会对可用性产生负面影响,因为用户可能会尝试单击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) 🔗

阴影偏移量(以像素为单位)。调整阴影相对于样式框的位置。


int shadow_size = 0 🔗

  • void set_shadow_size(value: int)

  • int get_shadow_size()

阴影大小(以像素为单位)。


Vector2 skew = Vector2(0, 0) 🔗

如果在任一轴上设置为非零值,skew会水平和/或垂直扭曲StyleBox。这可用于“未来主义”风格的UI。正值使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的半径。有关可能的值,请参阅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) 🔗

将给定corner的角半径设置为radius像素。有关可能的值,请参阅Corner


void set_corner_radius_all(radius: int) 🔗

将所有角的角半径设置为radius像素。


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

将指定Side的展开边距设置为size像素。


void set_expand_margin_all(size: float) 🔗

将所有边的展开边距设置为size像素。