:github_url: hide .. Generated automatically by doc/tools/makerst.py in Godot's source tree. .. DO NOT EDIT THIS FILE, but the Button.xml source instead. .. The source is found in doc/classes or modules//doc_classes. .. _class_Button: Button ====== **Inherits:** :ref:`BaseButton` **<** :ref:`Control` **<** :ref:`CanvasItem` **<** :ref:`Node` **<** :ref:`Object` **Inherited By:** :ref:`CheckBox`, :ref:`CheckButton`, :ref:`ColorPickerButton`, :ref:`MenuButton`, :ref:`OptionButton`, :ref:`ToolButton` Standard themed Button. Description ----------- Button is the standard themed button. It can contain text and an icon, and will display them according to the current :ref:`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") add_child(button) 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 :ref:`BaseButton` which contains common properties and methods associated with this node. **Note:** Buttons do not interpret touch input and therefore don't support multitouch, since mouse emulation can only press one button at a given time. Use :ref:`TouchScreenButton` for buttons that trigger gameplay movement or actions, as :ref:`TouchScreenButton` supports multitouch. Tutorials --------- - `2D Dodge The Creeps Demo `_ - `OS Test Demo `_ Properties ---------- +-----------------------------------------+-------------------------------------------------------+-----------+ | :ref:`TextAlign` | :ref:`align` | ``1`` | +-----------------------------------------+-------------------------------------------------------+-----------+ | :ref:`bool` | :ref:`clip_text` | ``false`` | +-----------------------------------------+-------------------------------------------------------+-----------+ | :ref:`bool` | :ref:`expand_icon` | ``false`` | +-----------------------------------------+-------------------------------------------------------+-----------+ | :ref:`bool` | :ref:`flat` | ``false`` | +-----------------------------------------+-------------------------------------------------------+-----------+ | :ref:`Texture` | :ref:`icon` | | +-----------------------------------------+-------------------------------------------------------+-----------+ | :ref:`String` | :ref:`text` | ``""`` | +-----------------------------------------+-------------------------------------------------------+-----------+ Theme Properties ---------------- +---------------------------------+---------------------+------------------------------+ | :ref:`StyleBox` | disabled | | +---------------------------------+---------------------+------------------------------+ | :ref:`StyleBox` | focus | | +---------------------------------+---------------------+------------------------------+ | :ref:`Font` | font | | +---------------------------------+---------------------+------------------------------+ | :ref:`Color` | font_color | Color( 0.88, 0.88, 0.88, 1 ) | +---------------------------------+---------------------+------------------------------+ | :ref:`Color` | font_color_disabled | Color( 0.9, 0.9, 0.9, 0.2 ) | +---------------------------------+---------------------+------------------------------+ | :ref:`Color` | font_color_hover | Color( 0.94, 0.94, 0.94, 1 ) | +---------------------------------+---------------------+------------------------------+ | :ref:`Color` | font_color_pressed | Color( 1, 1, 1, 1 ) | +---------------------------------+---------------------+------------------------------+ | :ref:`StyleBox` | hover | | +---------------------------------+---------------------+------------------------------+ | :ref:`int` | hseparation | 2 | +---------------------------------+---------------------+------------------------------+ | :ref:`StyleBox` | normal | | +---------------------------------+---------------------+------------------------------+ | :ref:`StyleBox` | pressed | | +---------------------------------+---------------------+------------------------------+ Enumerations ------------ .. _enum_Button_TextAlign: .. _class_Button_constant_ALIGN_LEFT: .. _class_Button_constant_ALIGN_CENTER: .. _class_Button_constant_ALIGN_RIGHT: 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 --------------------- .. _class_Button_property_align: - :ref:`TextAlign` **align** +-----------+-----------------------+ | *Default* | ``1`` | +-----------+-----------------------+ | *Setter* | set_text_align(value) | +-----------+-----------------------+ | *Getter* | get_text_align() | +-----------+-----------------------+ Text alignment policy for the button's text, use one of the :ref:`TextAlign` constants. ---- .. _class_Button_property_clip_text: - :ref:`bool` **clip_text** +-----------+----------------------+ | *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. ---- .. _class_Button_property_expand_icon: - :ref:`bool` **expand_icon** +-----------+------------------------+ | *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. ---- .. _class_Button_property_flat: - :ref:`bool` **flat** +-----------+-----------------+ | *Default* | ``false`` | +-----------+-----------------+ | *Setter* | set_flat(value) | +-----------+-----------------+ | *Getter* | is_flat() | +-----------+-----------------+ Flat buttons don't display decoration. ---- .. _class_Button_property_icon: - :ref:`Texture` **icon** +----------+------------------------+ | *Setter* | set_button_icon(value) | +----------+------------------------+ | *Getter* | get_button_icon() | +----------+------------------------+ Button's icon, if text is present the icon will be placed before the text. ---- .. _class_Button_property_text: - :ref:`String` **text** +-----------+-----------------+ | *Default* | ``""`` | +-----------+-----------------+ | *Setter* | set_text(value) | +-----------+-----------------+ | *Getter* | get_text() | +-----------+-----------------+ The button's text that will be displayed inside the button's area. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`