StyleBox

继承: Resource < RefCounted < Object

派生: StyleBoxEmpty, StyleBoxFlat, StyleBoxLine, StyleBoxTexture

用于定义UI元素风格化的抽象基类。

描述

StyleBox是一个抽象基类,用于绘制风格化的UI元素框。它用于面板、按钮、LineEdit背景、Tree背景等,也用于测试指针信号的透明度蒙版。如果蒙版测试在分配给控件的StyleBox上失败,点击和运动信号将通过它到达下面的控件。

注意:对于具有主题属性的控制节点,焦点StyleBox显示在正常悬停按下StyleBox之上。这使得焦点StyleBox在不同节点之间更具可重用性。

属性

方法

void

_draw(to_canvas_item: RID, rect: Rect2) virtual const

Rect2

_get_draw_rect(rect: Rect2) virtual const

Vector2

_get_minimum_size() virtual const

bool

_test_mask(point: Vector2, rect: Rect2) virtual const

void

draw(canvas_item: RID, rect: Rect2) const

float

get_content_margin(margin: Side) const

CanvasItem

get_current_item_drawn() const

float

get_margin(margin: Side) const

Vector2

get_minimum_size() const

Vector2

get_offset() const

void

set_content_margin(margin: Side, offset: float)

void

set_content_margin_all(offset: float)

bool

test_mask(point: Vector2, rect: Rect2) const


属性说明

float content_margin_bottom = -1.0 🔗

  • void set_content_margin(margin: Side, offset: float)

  • float get_content_margin(margin: Side) const

此样式框内容的底部边距。增加此值会减少底部内容的可用空间。

如果此值为负数,则忽略它并使用子级特定的边距。例如,对于StyleBoxFlat,将使用边框厚度(如果有)代替。

由使用此样式框的代码来决定这些内容是什么:例如,Button尊重该按钮的文本内容的内容边距。

get_margin()应该用于以消费者身份获取此值,而不是直接读取这些属性。这是因为它正确地尊重负值和上面提到的回退。


float content_margin_left = -1.0 🔗

  • void set_content_margin(margin: Side, offset: float)

  • float get_content_margin(margin: Side) const

此样式框内容的左边距。增加此值会减少左侧内容的可用空间。

有关额外注意事项,请参阅content_margin_bottom


float content_margin_right = -1.0 🔗

  • void set_content_margin(margin: Side, offset: float)

  • float get_content_margin(margin: Side) const

此样式框内容的右边距。增加此值会减少右侧内容的可用空间。

有关额外注意事项,请参阅content_margin_bottom


float content_margin_top = -1.0 🔗

  • void set_content_margin(margin: Side, offset: float)

  • float get_content_margin(margin: Side) const

此样式框内容的上边距。增加此值会减少顶部内容的可用空间。

有关额外注意事项,请参阅content_margin_bottom


方法说明

void _draw(to_canvas_item: RID, rect: Rect2) virtual const 🔗


Rect2 _get_draw_rect(rect: Rect2) virtual const 🔗


Vector2 _get_minimum_size() virtual const 🔗

由用户实现的虚拟方法。返回样式框在绘图时必须遵守的自定义最小大小。默认情况下get_minimum_size()仅考虑内容边距。可以覆盖此方法以添加另一个大小限制。将使用默认行为和此方法的输出的组合,以考虑两个大小。


bool _test_mask(point: Vector2, rect: Rect2) virtual const 🔗


void draw(canvas_item: RID, rect: Rect2) const 🔗

使用由给定RID标识的画布项绘制此样式框。

RID值可以是在现有CanvasItem派生节点上调用的CanvasItem.get_canvas_item()的结果,也可以是直接使用RenderingServer.canvas_item_create()RenderingServer中创建画布项的结果。


float get_content_margin(margin: Side) const 🔗

返回指定Side的默认边距。


CanvasItem get_current_item_drawn() const 🔗

返回此时处理其CanvasItem.NOTIFICATION_DRAWCanvasItem._draw()回调的CanvasItem


float get_margin(margin: Side) const 🔗

返回指定Side的内容边距偏移量。

Control的边距值不同,正值会向内减小大小。


Vector2 get_minimum_size() const 🔗

返回此样式框可以缩小到的最小大小。


Vector2 get_offset() const 🔗

返回样式框的“偏移量”。此辅助函数返回一个等效于Vector2(style.get_margin(MARGIN_LEFT), style.get_margin(MARGIN_TOP))的值。


void set_content_margin(margin: Side, offset: float) 🔗

将指定Side的默认值设置为offset像素。


void set_content_margin_all(offset: float) 🔗

将所有边的默认边距设置为offset像素。


bool test_mask(point: Vector2, rect: Rect2) const 🔗

测试矩形中的一个位置,返回它是否通过掩码测试。