Button

继承: BaseButton < Control < CanvasItem < Item < Object

派生: CheckBox, CheckButton, ColorPickerButton, MenuButton, OptionButton

可以包含文本和图标的主题按钮。

描述

Button是标准的主题按钮。它可以包含文本和图标,并根据当前的Theme显示它们。

示例:创建一个按钮并连接一个在按下按钮时会被调用的方法:

func iStart() -> void:
    var button = Button.new()
    button.text = "Click me"
    button.pressed.connect(_button_pressed)
    add_child(button)

func button_pressed():
    print("Hello world!")

另请参阅BaseButton,其中包含与此节点相关的常见属性和方法。

属性

主题属性


属性说明

HorizontalAlignment alignment = 1 🔗

按钮文本的文本对齐策略,请使用HorizontalAlignment常量之一。


AutowrapMode autowrap_mode = 0 🔗

如果设置为TextServer.AUTOWRAP_OFF以外的值,则文本将被包裹在节点的边界矩形内。


bool clip_text = false 🔗

  • void set_clip_text(value: bool)

  • bool get_clip_text()

如果true,则太大而不适合按钮的文本将被水平裁剪。如果false,则按钮将始终足够宽以容纳文本。文本不会垂直裁剪,按钮的高度不受此属性的影响。


bool expand_icon = false 🔗

  • void set_expand_icon(value: bool)

  • bool is_expand_icon()

启用后,按钮的图标将展开/缩小以适应按钮的大小,同时保持其纵横。另请参见icon_max_width


bool flat = false 🔗

  • void set_flat(value: bool)

  • bool is_flat()

扁平按钮不显示装饰。


Texture2D icon 🔗

按钮的图标,如果存在文本,则图标将放置在文本之前。

要编辑图标的边距和行间距,请使用h_separation主题属性和使用的StyleBoxes的content_margin_*属性。


HorizontalAlignment icon_alignment = 0 🔗

指定图标是否应与按钮的左、右或中心水平对齐。使用与文本对齐相同的HorizontalAlignment常量。如果水平和垂直居中,文本将绘制在图标顶部。


String language = "" 🔗

用于换行和文本整形算法的语言代码,如果留空则使用当前语言环境。


String text = "" 🔗

将显示在按钮区域内的按钮文本。


TextDirection text_direction = 0 🔗

基本文本写作方向。


OverrunBehavior text_overrun_behavior = 0 🔗

设置文本超过节点边界矩形时的裁剪行为。有关所有模式的描述,请参阅OverrunBehavior


VerticalAlignment vertical_icon_alignment = 1 🔗

指定图标是否应与按钮的顶部、底部或中心垂直对齐。使用与文本对齐相同的VerticalAlignment常量。如果水平和垂直居中,文本将绘制在图标顶部。


主题属性说明

Color font_color = Color(0.875, 0.875, 0.875, 1) 🔗

Button的默认文本Color


Color font_disabled_color = Color(0.875, 0.875, 0.875, 0.5) 🔗

禁用Button时使用的文本Color


Color font_focus_color = Color(0.95, 0.95, 0.95, 1) 🔗

聚焦Button时使用的文本Color。仅替换按钮的正常文本颜色。禁用、悬停和按下状态优先于此颜色。


Color font_hover_color = Color(0.95, 0.95, 0.95, 1) 🔗

悬停Button时使用的文本Color


Color font_hover_pressed_color = Color(1, 1, 1, 1) 🔗

悬停并按下Button时使用的文本Color


Color font_outline_color = Color(0, 0, 0, 1) 🔗

Button的文本轮廓色调。


Color font_pressed_color = Color(1, 1, 1, 1) 🔗

按下Button时使用的文本Color


Color icon_disabled_color = Color(1, 1, 1, 0.4) 🔗

禁用Button时使用的图标调制Color


Color icon_focus_color = Color(1, 1, 1, 1) 🔗

聚焦Button时使用的图标调制Color。仅替换按钮的正常调制颜色。禁用、悬停和按下状态优先于此颜色。


Color icon_hover_color = Color(1, 1, 1, 1) 🔗

悬停Button时使用的图标调制Color


Color icon_hover_pressed_color = Color(1, 1, 1, 1) 🔗

悬停并按下Button时使用的图标调制Color


Color icon_normal_color = Color(1, 1, 1, 1) 🔗

默认图标调制ButtonColor


Color icon_pressed_color = Color(1, 1, 1, 1) 🔗

按下Button时使用的图标调制Color


int align_to_largest_stylebox = 0 🔗

此常量充当布尔值。如果true,则按钮和文本/图标对齐的最小大小始终基于最大样式框边距,否则基于当前按钮状态样式框边距。


int h_separation = 4 🔗

Button的图标和文本之间的水平空间。使用时负值将被视为0


int icon_max_width = 0 🔗

Button图标的最大允许宽度。此限制应用于图标的默认大小之上,如果expand_icontrue,则应用于其扩展大小。高度根据图标的比例进行调整。如果按钮有其他图标(例如CheckBox),它们也将受到限制。


int line_spacing = 0 🔗

行间距增加(以像素为单位),行间距增加到行下降。这个值可以是负数。


int outline_size = 0 🔗

文本大纲的大小。

注意:如果使用启用了FontFile.multichannel_signed_distance_field的字体,则其FontFile.msdf_pixel_range必须设置为至少两倍outline_size的值才能使轮廓渲染看起来正确。否则,轮廓可能会比预期的更早被切断。


Font font 🔗

Button文本的Font


int font_size 🔗

Button文本的字体大小。


Texture2D icon 🔗

Button的默认图标。仅在未分配icon时出现。


StyleBox disabled 🔗

禁用Button时使用的StyleBox


StyleBox disabled_mirrored 🔗

禁用Button时使用的StyleBox(用于从右到左的布局)。


StyleBox focus 🔗

Button聚焦时使用的StyleBoxfocusStyleBox显示在底座StyleBox上方,因此应使用部分透明的StyleBox来确保底座StyleBox保持可见。表示轮廓或下划线的StyleBox可以很好地用于此目的。要禁用焦点视觉效果,请分配StyleBoxEmpty资源。请注意,禁用焦点视觉效果会损害键盘/控制器导航的可用性,因此出于可访问性原因,不建议这样做。


StyleBox hover 🔗

悬停Button时使用的StyleBox


StyleBox hover_mirrored 🔗

StyleBoxButton悬停时使用(用于从右到左的布局)。


StyleBox hover_pressed 🔗

StyleBox在同时按下Button和悬停时使用。


StyleBox hover_pressed_mirrored 🔗

StyleBox用于同时按下Button并悬停(用于从右到左的布局)。


StyleBox normal 🔗

Button的默认StyleBox


StyleBox normal_mirrored 🔗

Button的默认StyleBox(用于从右到左的布局)。


StyleBox pressed 🔗

按下Button时使用的StyleBox


StyleBox pressed_mirrored 🔗

StyleBox在按下Button时使用(用于从右到左的布局)。