Inherits: BaseButton < Control < CanvasItem < Node < Object

Inherited By: CheckBox, CheckButton, ColorPickerButton, MenuButton, OptionButton, ToolButton

Standard themed Button.


Button is the standard themed button. It can contain text and an icon, and will display them according to the current Theme.

Example of creating a button and assigning an action when pressed by code:

func _ready():
    var button = Button.new()
    button.text = "Click me"
    button.connect("pressed", self, "_button_pressed")

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

Buttons (like all Control nodes) can also be created in the editor, but some situations may require creating them from code.

See also BaseButton which contains common properties and methods associated with this node.


TextAlign align 1
bool clip_text false
bool expand_icon false
bool flat false
Texture icon  
String text ""

Theme Properties

StyleBox disabled  
StyleBox focus  
Font font  
Color font_color Color( 0.88, 0.88, 0.88, 1 )
Color font_color_disabled Color( 0.9, 0.9, 0.9, 0.2 )
Color font_color_hover Color( 0.94, 0.94, 0.94, 1 )
Color font_color_pressed Color( 1, 1, 1, 1 )
StyleBox hover  
int hseparation 2
StyleBox normal  
StyleBox pressed  


enum TextAlign:

  • ALIGN_LEFT = 0 --- Align the text to the left.
  • ALIGN_CENTER = 1 --- Align the text to the center.
  • ALIGN_RIGHT = 2 --- Align the text to the right.

Property Descriptions

Default 1
Setter set_text_align(value)
Getter get_text_align()

Text alignment policy for the button's text, use one of the TextAlign constants.

Default false
Setter set_clip_text(value)
Getter get_clip_text()

When this property is enabled, text that is too large to fit the button is clipped, when disabled the Button will always be wide enough to hold the text.

Default false
Setter set_expand_icon(value)
Getter is_expand_icon()

When enabled, the button's icon will expand/shrink to fit the button's size while keeping its aspect.

Default false
Setter set_flat(value)
Getter is_flat()

Flat buttons don't display decoration.

Setter set_button_icon(value)
Getter get_button_icon()

Button's icon, if text is present the icon will be placed before the text.

Default ""
Setter set_text(value)
Getter get_text()

The button's text that will be displayed inside the button's area.